没有这样的方法异常removeAccount target API< 22

时间:2017-05-28 09:13:57

标签: android

我正在使用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 个答案:

答案 0 :(得分:2)

对于API&lt; 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);
}

答案 1 :(得分:2)

您正在使用添加到API22中的方法。这种方法有2个版本。可以在API 22之后使用可以用于API22之前版本的版本以及您正在使用的版本。

enter image description here

以下方法在API级别22中已弃用。

所以你可以这样做

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