我正在使用google帐户,我想借助我的应用程序从设备中删除所有登录的帐户,而我使用此行代码完成了此操作

 private void signOutGmail() {
        AccountManager am = AccountManager.get(this);
        Account[] accounts = am.getAccounts();
        if (accounts.length > 0) {
            Account accountToRemove = accounts[0];
            am.removeAccount(accountToRemove, null, null);
        }
    }


但是,当我在棉花糖中运行我的应用程序时,出现了“安全异常”错误,并且我的应用程序崩溃了,是否有任何解决方案可以在棉花糖中以编程方式从设备中删除gmail帐户。

这是我的例外:

02-27 12:25:11.386 14485-14485/com.example.deletedemo E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         Process: com.example.deletedemo, PID: 14485
                                                                         java.lang.SecurityException: uid 10145 cannot remove accounts of type: com.google
                                                                             at android.os.Parcel.readException(Parcel.java:1620)
                                                                             at android.os.Parcel.readException(Parcel.java:1573)
                                                                             at android.accounts.IAccountManager$Stub$Proxy.removeAccount(IAccountManager.java:915)
                                                                             at android.accounts.AccountManager$6.doWork(AccountManager.java:844)
                                                                             at android.accounts.AccountManager$BaseFutureTask.startTask(AccountManager.java:2024)
                                                                             at android.accounts.AccountManager$Future2Task.start(AccountManager.java:2079)
                                                                             at android.accounts.AccountManager.removeAccount(AccountManager.java:841)
                                                                             at com.example.deletedemo.MainActivity.signOutGmail(MainActivity.java:134)
                                                                             at com.example.deletedemo.MainActivity.onClick(MainActivity.java:68)
                                                                             at android.view.View.performClick(View.java:5204)
                                                                             at android.view.View$PerformClick.run(View.java:21153)
                                                                             at android.os.Handler.handleCallback(Handler.java:739)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                             at android.os.Looper.loop(Looper.java:148)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


请帮忙!
谢谢!!

最佳答案

您需要以下权限:

<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>


编辑:对于棉花糖,在运行时请求权限。

关于android - 从棉花糖中的android设备中删除Google帐户?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42479384/

10-11 06:39