当Android手机收到呼叫时,它会自动检查呼叫是否存在于自己的联系人数据库中。我想知道是否有一种简单的方法来访问该信息。我有一个PhoneStateListener
在振铃状态下执行某些操作,我想检查传入的呼叫者是否在联系人列表中。
有没有办法在不通过联系人ContentProvider
的情况下执行此操作?
答案 0 :(得分:5)
手机应用也会使用联系人ContentProvider
;我不确定你为什么要避免这种情况。此外,它是访问该信息的唯一可公开访问的方式。
无论如何,将数字解析为名称(在这种情况下为2.0之前)非常简单:
Uri uri = Uri.withAppendedPath(Phones.CONTENT_FILTER_URL, Uri.encode(number));
String name = null;
Cursor cursor = context.getContentResolver().query(uri,
new String[] { Phones.DISPLAY_NAME }, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
name = cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME));
cursor.close();
}
答案 1 :(得分:3)