如何获得删除小米(MIUI)设备中联系人的权限?
Posted
技术标签:
【中文标题】如何获得删除小米(MIUI)设备中联系人的权限?【英文标题】:How to get permission for deleting contacts in xiaomi (MIUI) devices? 【发布时间】:2019-10-29 12:56:04 【问题描述】:我正在制作一个用于管理联系人的应用程序。在大多数手机上,一切正常,但在某些小米设备上,尝试删除联系人时出现错误。
这是我删除联系人的代码 -
final ArrayList ops = new ArrayList();
final ContentResolver cr = getContext().getContentResolver();
ops.add(ContentProviderOperation
.newDelete(ContactsContract.RawContacts.CONTENT_URI)
.withSelection(ContactsContract.RawContacts.CONTACT_ID + " = ?",
new String[]contact.getContactId())
.build());
try
cr.applyBatch(ContactsContract.AUTHORITY, ops);
LogUtil.log(getString(R.string.log_msg_delete, contact.getDisplayName()));
catch (RemoteException e)
e.printStackTrace();
catch (OperationApplicationException e)
e.printStackTrace();
我在清单文件中有权限-
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
并在运行时请求它们。
该问题仅出现在部分小米设备上。在其他制造商上,一切正常。另外,我检查了 Play 商店中的其他应用程序,并且在某些联系人管理器中不存在此问题,因此肯定有办法解决它
【问题讨论】:
效果如何? 你能检查adb logcat
并分享吗?应该显示权限错误等。
尝试授予设备管理权限。 developer.android.com/guide/topics/admin/device-admin
但它已被 android 28 @VirojFernando 弃用
@GkMohammadEmon,我猜不是全部developers.google.com/android/work/device-admin-deprecation。这里只有少数内部政策被弃用。
【参考方案1】:
转到应用权限>联系人,看看是否勾选了AutoPhoner。如果未选中(不允许),请检查它。 是的,您的用户需要手动执行此操作(手动允许权限)。
我在小米设备上也遇到过像你这样的问题。我的应用需要来自 Sittings 的 App permissions 屏幕的用户许可(允许我的应用使用 Autostart)。我只是以编程方式向我的用户展示了 App 权限 屏幕,以便为他提供额外的灵活性,因为手动打开 App 权限 屏幕对于用户来说既麻烦又糟糕。 This 将帮助您做到这一点。
然后,如果它不起作用,那么我很确定在小米中不可能(从电话簿中删除联系人),因为小米使用定制的 Android 操作系统,他们可能会限制从第三方应用程序中删除联系人,因为安全问题。
【讨论】:
以上是关于如何获得删除小米(MIUI)设备中联系人的权限?的主要内容,如果未能解决你的问题,请参考以下文章