Java 如何获得删除小米(MIUI)设备中联系人的权限?

Java 如何获得删除小米(MIUI)设备中联系人的权限?,java,android,xiaomi,Java,Android,Xiaomi,我正在制作一个用于管理联系人的应用程序。在大多数手机上,一切正常,但在一些小米设备上,我在尝试删除联系人时出错 这是我删除联系人的代码- final ArrayList ops = new ArrayList(); final ContentResolver cr = getContext().getContentResolver(); ops.add(ContentProvider

我正在制作一个用于管理联系人的应用程序。在大多数手机上,一切正常,但在一些小米设备上,我在尝试删除联系人时出错

这是我删除联系人的代码-

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 store中的其他应用程序,在一些联系人管理器中,这个问题不存在,因此肯定有办法解决它

转到应用程序权限>联系人,查看是否选中了自动电话。如果未检查(不允许),请检查。并且,您的用户需要手动执行此操作(手动允许权限)

我也面临着像你一样的小米设备问题。我的应用需要来自应用权限的用户权限来自坐席的屏幕(允许自动启动我的应用)。我只是以编程方式向我的用户展示了应用权限屏幕,给了他额外的灵活性,因为手动打开应用权限屏幕对于用户来说是一件麻烦和糟糕的事情。我会帮你的


然后,如果它不起作用,那么我很确定它在小米是不可能的(从电话簿中删除联系人),因为小米使用的是Android的定制操作系统,并且由于安全问题,他们可能被限制从第三方应用程序中删除联系人。

它是如何工作的?你能检查
adb logcat
并分享吗?应显示权限错误或类似错误。请尝试授予设备管理权限。但是android 28不推荐使用它@VirojFernando@GkMohammadEmon我想不是全部。在这里,只有少数内部策略被弃用。