java获取手机通讯录权限_Android通讯录 - 获取电话号码

我使用下面的代码及其工作,请看:

Cursor cursor = getContentResolver().query(

ContactsContract.Contacts.CONTENT_URI, null, null,

null, null);

cursor.moveToFirst();

// data = new String[cursor.getCount()][12];

if (cursor.getCount() > 0) {

do {

try {

contactId = cursor

.getString(cursor

.getColumnIndex(ContactsContract.Contacts._ID));

Uri contactUri = ContentUris.withAppendedId(

Contacts.CONTENT_URI,

Long.parseLong(contactId));

Uri dataUri = Uri.withAppendedPath(contactUri,

Contacts.Data.CONTENT_DIRECTORY);

Cursor phones = getContentResolver()

.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID

+ " = " + contactId,

null, null);

if (phones.getCount() > 0) {

ContactClass info = new ContactClass();

info.setid(contactId);

try {

Cursor nameCursor = getContentResolver()

.query(dataUri,

null,

Data.MIMETYPE + "=?",

new String[] { StructuredName.CONTENT_ITEM_TYPE },

null);

nameCursor.moveToFirst();

do {

String firstName = nameCursor

.getString(nameCursor

.getColumnIndex(Data.DATA2));

String lastName = "";

String displayname = cursor

.getString(cursor

.getColumnIndex(Contacts.DISPLAY_NAME_ALTERNATIVE));

if (!firstName.equals(displayname)) {

lastName = nameCursor

.getString(nameCursor

.getColumnIndex(Data.DATA3));

}

if (firstName.equals(null)

&& lastName.equals(null)) {

info.setfirstname("unknown name");

} else if (firstName.equals(null)) {

info.setlastname(lastName);

} else if (lastName.equals(null)) {

info.setfirstname(firstName);

} else {

info.setfirstname(firstName);

info.setlastname(lastName);

}

} while (nameCursor.moveToNext());

nameCursor.close();

} catch (Exception e) {

}

}

phones.close();

}

catch (Exception t) {

}

} while (cursor.moveToNext());

cursor.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值