【问题标题】:GET_ACCOUNT permission is not granted in android NGET_ACCOUNT 权限未在 android N 中授予
【发布时间】:2018-06-28 05:32:51
【问题描述】:

我正在担任客户经理。我想检查帐户是否存在。

 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 不存在”。在日志中。我也在清单中添加了。我也要求运行时许可。

【问题讨论】:

    标签: android android-7.0-nougat runtime-permissions


    【解决方案1】:

    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;
            }
    

    【讨论】:

    • 我已添加所有权限 Manifest.permission.WRITE_CONTACTS、Manifest.permission.READ_PHONE_STATE、Manifest.permission.SYSTEM_ALERT_WINDOW、Manifest.permission.READ_CONTACTS、Manifest.permission.CALL_PHONE,
    • @PriyadarshiniMaurya 解决了吗?
    猜你喜欢
    • 2016-03-08
    • 1970-01-01
    • 2020-08-22
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多