手机处于IDLE
状态。
妈妈正在调用 - >电话处于RINGING
状态。
了解妈妈的号码,我可以替换妈妈,而是将爸爸显示为给我打电话的人的值吗?
我在做什么:
我知道妈妈的号码是 112233445566 。当我收到此号码的电话时,我会查询来获取来电者的姓名(妈妈)。然后我用爸爸替换妈妈。
部分代码:
String[] queryProjection = new String[] {
ContactsContract.PhoneLookup._ID
ContactsContract.PhoneLookup.DISPLAY_NAME };
Uri displayContactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode("112233445566"));
Cursor cursor = getContentResolver().query(displayContactUri, queryProjection, null, null, null);
String callerID = cursor.getString(cursor.getColumnIndex(
ContactsContract.PhoneLookup._ID));
ContentProviderOperation.Builder builder = ContentProviderOperation
.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(
ContactsContract.Data.CONTACT_ID + "=?" + " AND "
+ ContactsContract.Data.MIMETYPE + "=?",
new String[] {
String.valueOf(callerID), ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE });
builder.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
"Dad");
ops.add(builder.build());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY,
ops);
} catch (Exception e) {
e.printStackTrace();
}
我怀疑有一个可能的问题:我的代码执行的时间已经太晚了,并且启动了来电活动。即使我更新了值,呼叫者姓名也已显示旧名称(妈妈)。通话结束后,我查看我的联系簿,并按照我的意愿更新:爸爸,号码: 112233445566
任何想法我做错了什么?