美文网首页
Android MIUI 删除联系人

Android MIUI 删除联系人

作者: Candy666 | 来源:发表于2023-06-10 16:50 被阅读0次

    正常情况下,删除联系人可以使用如下代码:

    getContentResolver().delete(ContactsContract.RawContacts.CONTENT_URI, ContactsContract.Contacts.DISPLAY_NAME + "=?", new String[]{name});

    但是在MIUI中,却失败了,弹出如下对话框:

    MIUI系统对话框

    通过系统log可以发现:

    pkg: com.android.providers.contacts activity: com.miui.providers.contacts.ContactsDeletionDialog。

    即这是系统联系人数据库弹出的界面,且是MIUI定制增加的,并非AOSP逻辑。

    从对话框内容可以看出,MIUI为了保护信息安全,禁止第三方app删除联系人。难道小米真的不允许第三方app删除联系人?不应该啊,很多第三方应用应该都是可以的。联系人主要涉及"contacts"、"raw_contacts"表,URI换成 ContactsContract.Contacts.CONTENT_URI 也不行,只是没有弹框了,但依然失败。最后,换成 ContactLookupUri 成功了:

    Uri contactUri = ContactsContract.RawContacts.getContactLookupUri(getContentResolver(), ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI,rawContactId));

    getContentResolver().delete(contactUri,null, null);

    所以,小米手机上,必须使用ContactLookupUri 才能成功删除联系人。

    相关文章

      网友评论

          本文标题:Android MIUI 删除联系人

          本文链接:https://www.haomeiwen.com/subject/pgvtydtx.html