要求PACKAGE_USER_STATS授权

时间:2017-03-02 08:32:34

标签: android android-permissions

我正在尝试授权使用API​​> = 23的设备来检查软件包用户统计信息。 如https://developer.android.com/about/versions/android-5.0.html#System中所述,我可以使用android.app.usage API。

该API的使用要求我在清单中声明此权限:

<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions"  />

但如果我不“忽略ProtectedPermissions”,AndroidStudio会给我这个错误:

enter image description here

问题:

  • 这是否意味着,如何在文档中说明,用户还必须通过设置&gt;启用此应用的访问权限。安全&gt;有使用权限的应用。,或者这两件事与每个人无关?

  • 如何通过设置&gt;要求用户启用此应用的访问权限安全&gt;有使用权限的应用。无论如何?

  • 无论如何,为什么,当我在设置&gt;中手动设置 on 应用时安全&gt;应用程序,绕过前一点,当我到达这行代码时仍然没有得到对话框,授权仍然没有给出?这正是Android Documentation似乎要求做的事情。为什么这个请求甚至没有弹出?还缺少什么?

    if (Build.VERSION.SDK_INT >= 23)
        if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.PACKAGE_USAGE_STATS) != PackageManager.PERMISSION_GRANTED)
            ActivityCompat.requestPermissions(myActivity, new String[]{Manifest.permission.PACKAGE_USAGE_STATS}, MY_REQUEST_CODE);  // <-- I reach this point but the dialog does not popup!??
    

1 个答案:

答案 0 :(得分:1)

您应该设置这样的权限;

  <uses-permission
    android:name="android.permission.PACKAGE_USAGE_STATS"
    tools:ignore="ProtectedPermissions" />

您可以访问以下权限;

   Intent intent = new 
   Intent(android.provider.Settings.ACTION_USAGE_ACCESS_SETTINGS);
             startActivity(intent);

希望,这有帮助。