2017-02-27 137 views
2

我與谷歌帳戶的用戶,我想刪除所有已登錄到設備的帳戶與我的應用程序的幫助下,我做了這一行的代碼刪除谷歌帳戶從Android設備棉花糖?

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) 

請幫助! 謝謝!

回答

1

你需要這些權限:

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

編輯:對於棉花糖,在運行時請求權限。

+0

客戶經理給我的權限只授予系統應用程序例外。 –

+0

@RishabhMahatha在運行時請求權限。 – mehulmpt

+0

你能給我發一個演示嗎? –