Android:检查联系人列表中的电话号码?(从电话中检索电话号码)

Nic*_*nsk 17 android contacts broadcastreceiver

BroadcastReceiver打电话给接听电话的人

<intent-filter>
<action
    android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
  1. 如何检查电话号码是否在我的联系人列表中?
    您是否有提示知道这个电话号码是否存在于联系人列表中且没有加载联系人列表?
    我不想要更多信息,只要这个电话号码存在.

  2. 如果不可能,我必须加载联系人列表,如何进行BroadcastReceiver
    当我尝试做的时候getContentResolver,它不起作用,因为我在BroadcastReceiver,而不在里面Activity...

谢谢你的帮助

eka*_*was 35

public boolean contactExists(Context context, String number) {
/// number is the phone number
Uri lookupUri = Uri.withAppendedPath(
PhoneLookup.CONTENT_FILTER_URI, 
Uri.encode(number));
String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
Cursor cur = context.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
try {
   if (cur.moveToFirst()) {
      return true;
}
} finally {
if (cur != null)
   cur.close();
}
return false;
}
Run Code Online (Sandbox Code Playgroud)


kku*_*udi 9

我认为你需要在清单文件中添加以下内容是很重要的.

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
Run Code Online (Sandbox Code Playgroud)