java - 仅在某些 Android 设备中获取所有联系人详细信息
问题描述
我正在尝试从联系人访问所有姓名和电话号码。我尝试了不同的方法,但我只获得了姓名,无法在我的 Moto E3 设备上获得电话号码。
在某些设备中它工作正常.. 但在我的 Moto E3 设备上却没有,因为我认为我的代码不起作用.. 我不知道为什么它没有在 Moto E3 设备上显示电话号码..
我知道这是一个基本问题,或者可能是重复的,但我之前看到的答案对我没有多大帮助。
int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)));
hasPhoneNumber
变量总是给我零值(0)。
回答
然后我检查了 Moto E3 设备的联系人应用程序,联系人是从 SKYPE 添加的。所以那里没有来自Google Id或Sim Card的联系人。
因此,我无法在 My Moto E3 中获取联系人。所以,我在我的Google ID中添加了一些数字,然后同步联系人。然后我获取数据。我得到了所有添加的联系人..
主.java
private void getContactList() {
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cursor.getCount() > 0) {
while (cur != null && cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
int hasPhoneNumber = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhoneNumber > 0) //hasPhoneNumber is always give Zero value(0)
{
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
String phoneNo = pCur.getString(pCur.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.i("TAG", "Name: " + name);
Log.i("TAG", "Phone Number: " + phoneNo);
}
pCur.close();
}
}
}
if(cur!=null){
cur.close();
}
}
我想要联系人中的所有姓名和电话号码,请帮助我..
谢谢你..
注意:我已经检查了上面的代码在另一个设备上运行良好。但不是在我的 Moto E3 设备上,因为我认为我的代码不起作用。我不知道为什么它没有在 Moto E3 设备上显示电话号码。
解决方案
推荐阅读
- javascript - 错误类型错误:this.route.params.flatMap 不是函数
- python - api.py:87:RuntimeWarning:“str”和“int”的实例之间不支持“<”,无法比较的对象的排序顺序未定义
- .net - 07 草案的免费 Json 验证器
- r - R-重组表中的数据
- android - 不支持的类型“usb 设备”
- git - 如何从对象或 github 上的提交中删除大文件?
- matlab - 如何解决 MATLAB 中的名称冲突?
- vba - 在 vba excel 上定义代码以简化代码编写过程
- python - 如何在 Python 中录制音频而不提前给出持续时间
- scala - Clojure、Racket、Scala 和 Common Lisp 中 pexpect 的替代品有哪些?