2017-05-28 19 views
1

我使用removeAccount方法來刪除自定義創建的帳戶和我收到在設備上的「沒有這樣的方法的異常」與API < 22.沒有這樣的方法例外removeAccount靶向API <22

 AccountManager.get(mContext).removeAccount(getAccountByType(mContext.getResources().getString(R.string.account_type)), null, null, null); 

我的清單文件具有以下權限作爲文檔說明:

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

任何幫助嗎?

回答

2

對於API < 22您需要使用棄用的方法。在你的代碼中,你將需要一個if,並使用基於設備API級別的正確方法。

你可能需要做同樣的事情:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { 
    removeAccount (Account account, AccountManagerCallback<Boolean> callback, 
        Handler handler); 
} else { 
    removeAccount (Account account, Activity activity, 
        AccountManagerCallback<Bundle> callback, Handler handler); 
} 
+0

這是我使用的方法.. – tsiro

+0

我已經更新了我的答案 – MatPag

2

您正在使用的加入到API22的方法。這個方法有兩個版本。一個可用於除API22和您使用的是一箇舊版本可以從/使用API​​後22

enter image description here

以下方法在API級別被廢棄22


所以,你可以不喜歡它

if (Build.VERSION.SDK_INT < 22) { 
    // Depricated version 
} else { 
    // New version 
} 
+0

什麼過時的版本...使用它有什麼問題嗎? – tsiro

+0

不,目前你不會遇到麻煩。直到Android爲您提供另一種從API22以下移除帳戶的方式,它們纔可用。 –

相關問題