我正在做客户经理。我要检查帐户是否存在。
private static final String TAG = "UserAccountUtil";
public static Account getAccount(Context context) {
if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "GET_ACCOUNTS not present.");
}
AccountManager accountManager = AccountManager.get(context);
Account[] accounts = accountManager.getAccountsByType(Constant.ACCOUNT_TYPE);
if (accounts.length > 0) {
Log.d(TAG, "GET_ACCOUNTS present..."+accounts[0]);
return accounts[0];
} else {
Log.d(TAG, "GET_ACCOUNTS not present...");
return null;
}
}
它总是返回null或“不存在GET_ACCOUNTS”。在日志中。我还添加了清单。我也在请求运行时许可。
答案 0 :(得分:0)
GET_ACCOUNTS
->从Android 6.0(API级别23)开始,如果应用共享 管理帐户的身份验证者的签名,不是 需要“ GET_ACCOUNTS”权限才能读取有关该帐户的信息。 在Android 5.1及更低版本上,所有应用都需要具有“ GET_ACCOUNTS”权限才能 读取有关任何帐户的信息。GET_ACCOUNTS权限现在为Dead
您可以使用 READ_CONTACTS
权限代替。
Build.VERSION.SDK_INT
演示
if (accounts.length > 0 && android.os.Build.VERSION.SDK_INT<23 ) {
Log.d(TAG, "GET_ACCOUNTS present..."+accounts[0]);
return accounts[0];
} else {
Log.d(TAG, "GET_ACCOUNTS not present...");
return null;
}