读取Android系统的通讯录时一般会先读取联系人然后再读取其号码,嵌套循环读取。如果通讯录人数不多速度尚可,但是通讯录里有1-2百人恐怕就比较慢了,如果硬件再差点体验就更差了。
可以使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI(对应contacts2.db的数据视图view_data_restricted)视图来读取避免嵌套读取
您还没有登录,请您登录后再发表评论
### Android读取电话号码知识点详解 #### 一、概述 在Android开发中,有时候我们需要让应用具有读取用户电话号码的功能,例如为了实现快速拨号、导入联系人等功能。根据提供的代码片段,我们可以看到这是一个简单...
首先,根据电话号码获取联系人ID,然后用这个ID查询联系人名: ```java Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(address)); Cursor contactCursor = ...
正确的方法是首先获取到目标联系人的 `_ID`,然后通过这个ID来查询电话号码: ```java // 获取第一个联系人的_ID Cursor target = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, ...
查询结果会返回一个Cursor对象,通过遍历Cursor,我们可以获取每条短信的发件人电话号码(`cursor.getString(cursor.getColumnIndex("address"))`)和短信内容(`cursor.getString(cursor.getColumnIndex("body"))`...
基于电话验证和号码格式库 安装 # npm install phonelookup 用法示例 验证电话并获取信息 var Phone = require('phonelookup'); // valid phone types by default: ['generalDesc', 'fixedLine', 'mobile', '...
然而,直接通过`PhoneLookup.NUMBER`获取电话号码可能不会成功,因为这个字段可能不存在于查询结果中。正确的方式是首先找到目标联系人的 `_ID`,然后再通过这个ID查询对应的电话号码: ```java Cursor target = ...
// 使用一个电话号码作为示例 Cursor simCursor = resolver.query(simContactsUri, null, Phone.TYPE + "=?", new String[]{String.valueOf(Phone.TYPE_SIM)}, null); ``` 最后,为了展示这些联系人,你可以使用...
对于姓名部分,`CallLog.Calls.CACHED_NAME`可能为空,这时需要通过电话号码查询联系人信息来获取姓名。可以使用`ContactsContract.CommonDataKinds.Phone`的ContentProvider来实现: ```java Uri contactUri = Uri...
你可以通过联系人的电话号码或其他唯一标识来查询其ID。例如: ```java Uri lookupUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode("13800138000")); Cursor cursor = ...
//取得电话号码 String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ...
将Android和iOS PhoneLookup应用程序都上传到deviceConnect购物车。 执行样本 要执行这些测试,您需要将deviceconnect.properties.default重命名为deviceconnect.properties。 重命名后,您需要填写以下信息: # ...
相关推荐
### Android读取电话号码知识点详解 #### 一、概述 在Android开发中,有时候我们需要让应用具有读取用户电话号码的功能,例如为了实现快速拨号、导入联系人等功能。根据提供的代码片段,我们可以看到这是一个简单...
首先,根据电话号码获取联系人ID,然后用这个ID查询联系人名: ```java Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(address)); Cursor contactCursor = ...
正确的方法是首先获取到目标联系人的 `_ID`,然后通过这个ID来查询电话号码: ```java // 获取第一个联系人的_ID Cursor target = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, ...
查询结果会返回一个Cursor对象,通过遍历Cursor,我们可以获取每条短信的发件人电话号码(`cursor.getString(cursor.getColumnIndex("address"))`)和短信内容(`cursor.getString(cursor.getColumnIndex("body"))`...
基于电话验证和号码格式库 安装 # npm install phonelookup 用法示例 验证电话并获取信息 var Phone = require('phonelookup'); // valid phone types by default: ['generalDesc', 'fixedLine', 'mobile', '...
然而,直接通过`PhoneLookup.NUMBER`获取电话号码可能不会成功,因为这个字段可能不存在于查询结果中。正确的方式是首先找到目标联系人的 `_ID`,然后再通过这个ID查询对应的电话号码: ```java Cursor target = ...
// 使用一个电话号码作为示例 Cursor simCursor = resolver.query(simContactsUri, null, Phone.TYPE + "=?", new String[]{String.valueOf(Phone.TYPE_SIM)}, null); ``` 最后,为了展示这些联系人,你可以使用...
对于姓名部分,`CallLog.Calls.CACHED_NAME`可能为空,这时需要通过电话号码查询联系人信息来获取姓名。可以使用`ContactsContract.CommonDataKinds.Phone`的ContentProvider来实现: ```java Uri contactUri = Uri...
你可以通过联系人的电话号码或其他唯一标识来查询其ID。例如: ```java Uri lookupUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode("13800138000")); Cursor cursor = ...
//取得电话号码 String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ...
将Android和iOS PhoneLookup应用程序都上传到deviceConnect购物车。 执行样本 要执行这些测试,您需要将deviceconnect.properties.default重命名为deviceconnect.properties。 重命名后,您需要填写以下信息: # ...