当
Android手机收到呼叫时,它会自动检查呼叫是否存在于自己的联系人数据库中.我想知道是否有一种简单的方法来访问该信息.我有一个PhoneStateListener在振铃状态期间执行某些操作,我想检查传入的调用者是否在联系人列表中.
有没有办法在不通过Contacts ContentProvider的情况下执行此操作?
解决方法
手机应用程序也使用联系人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); if (cursor != null && cursor.moveToFirst()) { name = cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME)); cursor.close(); }