台湾阿里云代理商:android来电归属地

查询需要使用第三方API,可以选择调用提供此服务的API接口或者购买相关服务的API产品。常见的API接口包括聚合数据、天眼查、阿里云API等。购买API产品可以选择阿里云市场的相关产品,如“号码归属地查询API”、“全球手机号码归属地查询API”等。需要根据具体业务场景和需求选择适合的API接口或者产品。

查询代码

查询来电归属地是许多手机用户都关心的问题,因此在阿里云上也有相应的代理商提供相关服务。下面是一段使用android系统的代码示例,可以实现来电归属地查询功能。

台湾阿里云代理商:android来电归属地
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;

public class PhoneListener extends PhoneStateListener {

    private final String TAG = PhoneListener.class.getSimpleName();
    private Context mContext;

    public PhoneListener(Context context) {
        mContext = context;
    }

    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        super.onCallStateChanged(state, incomingNumber);

        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                Log.d(TAG, "挂断");
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                Log.d(TAG, "响铃:来电号码" + incomingNumber);
                String location = queryLocation(incomingNumber);
                if (!TextUtils.isEmpty(location)) {
                    Log.d(TAG, "归属地:" + location);
                }
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                Log.d(TAG, "接听");
                break;
        }
    }

    /**
     * 查询来电号码的归属地信息
     *
     * @param incomingNumber 来电号码
     * @return 归属地信息
     */
    private String queryLocation(String incomingNumber) {
        String location = "";
        try {
            Uri uri = Uri.parse("content://com.android.contacts/data/phones/filter/" + incomingNumber);
            Cursor cursor = mContext.getContentResolver().query(uri, new String[]{"display_name", "lookup"}, null, null, null);
            if (cursor != null && cursor.moveToFirst()) {
                String lookup_key = cursor.getString(1);
                Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookup_key);
                Cursor contactsCursor = mContext.getContentResolver().query(lookupUri, new String[]{PhoneLookup._ID, PhoneLookup.DISPLAY_NAME, PhoneLookup.PHOTO_ID}, null, null, null);
                if (contactsCursor != null && contactsCursor.moveToFirst()) {
                    long contact_id = contactsCursor.getLong(0);
                    String name = contactsCursor.getString(1);
                    long photo_id = contactsCursor.getLong(2);
                    location = (TextUtils.isEmpty(name) ? "" : name + " ") + queryPhoneNumberLocation(incomingNumber);
                } else {
                    location = queryPhoneNumberLocation(incomingNumber);
                }
                if (cursor != null) {
                    cursor.close();
                }
                if (contactsCursor != null) {
                    contactsCursor.close();
                }
            } else {
                location = queryPhoneNumberLocation(incomingNumber);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return location;
    }

    /**
     * 根据手机号码查询其所属地区
     *
     * @param phoneNumber 手机号码
     * @return 所属地区
     */
    private String queryPhoneNumberLocation(String phoneNumber) {
        return "来电归属地";
    }
}

通过上述代码,我们可以通过监听来电状态的变化,实现查询来电号码的归属地信息的功能。具体流程是:当接收到来电时,根据传入的来电号码查询联系人表中的信息,若查询到联系人,则将联系人名与归属地拼接,若没有查询到联系人,则只返回归属地信息。另外,代码中的queryPhoneNumberLocation方法只是一个示例方法,如果需要实现真正的归属地查询功能,需要自行编写查询逻辑。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/116153.html

(0)
luotuoemo的头像luotuoemo
上一篇 2023年12月29日 04:56
下一篇 2023年12月29日 05:05

相关推荐

  • 阿里云管理控制台app

    如何通过域名管理控制台设置网站解析 一般设置A记录指向到主机IP或者是别名解析也可以,解析10分钟后生效。这儿有设置演示,可以教你操作。 阿里云服务器如何用手机管理? 先登录 云服务器管理控制台, 登录时都需要输入该密码,单击左上角的 发送远程命令 的 连接管理终端 。输入连接密码,可以切换不同的终端来进行不同的操作,进入管理终端后,点击右上角 复制命令输入…

    2023年8月25日
    18000
  • 阿里云国际站充值:asp.net 后台添加服务器控件

    在 ASP.NET 中添加服务器控件是一种常见的操作,用以增强网站的功能和互动性。如果您希望通过阿里云国际站充值并管理服务器,这里有一些基本的步骤和考虑因素,可以帮助您在 ASP.NET 后台添加服务器控件: 选择控件:首先,您需要决定需要哪种类型的服务器控件。ASP.NET 提供了多种控件,如 Button、TextBox、GridView 等。 在 Vi…

    2024年7月7日
    19600
  • 香港阿里云代理商:安卓开发环境配置

    配置安卓开发环境之前,请确保已经安装了Java Development Kit (JDK) 和 Android Studio。 以下是在香港阿里云上配置安卓开发环境的步骤: 登录到阿里云控制台,在左侧导航栏中选择ECS(Elastic Compute Service)。 在ECS控制台中,选择创建实例。 选择需要的实例配置,例如选择操作系统为Ubuntu。 …

    2024年1月4日
    24300
  • 阿里云服务器租借怎么收费

    阿里云服务器租借的收费方式有多种,具体取决于所选择的服务器类型、配置以及使用时长等因素。以下是几种常见的阿里云服务器租借的收费方式: 包年包月:按照预付费的方式,用户可以根据需求选择合适的服务器配置,预先支付一定时长的费用,如一个月、一年等,以享受相应的优惠价格。 按量付费:根据服务器的实际使用时间进行计费,按照小时或分钟进行计算,并按照服务器实际使用的资源…

    2023年10月27日
    19800
  • 阿里的云数据库怎么连接手机

    要连接手机到阿里云数据库,可以通过以下步骤进行: 在阿里云控制台上创建一个云数据库实例。选择适合你的业务需求的数据库类型,如MySQL、SQL Server等,并配置相关参数。 在云数据库实例的安全组中添加入站规则,允许手机设备的IP地址或IP段进行访问。 在手机应用的代码中,使用合适的数据库连接方式进行连接。具体代码会根据你使用的编程语言和数据库类型而有所…

    2023年9月30日
    23000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/