【发布时间】:2017-07-08 18:21:08
【问题描述】:
我正在制作一个与电话号码有关的小应用程序。
我的问题是我的手机联系人列表中有一个电话号码。 示例:0877777777
我想使用该电话号码打开该联系人信息。
只是为了澄清我所说的联系人列表是指保存在我手机上的联系人。
如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: java android android-contacts
我正在制作一个与电话号码有关的小应用程序。
我的问题是我的手机联系人列表中有一个电话号码。 示例:0877777777
我想使用该电话号码打开该联系人信息。
只是为了澄清我所说的联系人列表是指保存在我手机上的联系人。
如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: java android android-contacts
PhoneLookup api 仅用于此目的。
String number = "0877777777";
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] projection = new String[]{ PhoneLookup._ID, PhoneLookup.DISPLAY_NAME };
Cursor cur = getContentresolver().query(uri, projection, null, null, null);
if (cur != null) {
while (cur.moveToNext()) {
Long id = cur.getLong(0);
String name = cur.getString(1);
Log.d("My Contacts", "found: " + id + " - " + name);
}
cur.close();
}
更新
要在股票联系人应用中打开联系人的个人资料,您需要先获取联系人的CONTACT_ID,然后在Intent 中将其用于外部应用:
String number = "0877777777";
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] projection = new String[]{ PhoneLookup._ID };
Cursor cur = getContentresolver().query(uri, projection, null, null, null);
// if other contacts have that phone as well, we simply take the first contact found.
if (cur != null && cur.moveToNext()) {
Long id = cur.getLong(0);
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri contactUri = Uri.withAppendedPath(Contacts.CONTENT_URI, String.valueOf(id));
intent.setData(contactUri);
context.startActivity(intent);
cur.close();
}
【讨论】: