手机处于振铃状态时如何更换来电者姓名?

时间:2014-08-08 08:04:58

标签: android android-contacts

手机处于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

任何想法我做错了什么?

0 个答案:

没有答案