2017-03-02 86 views
0

我試圖請求API> = 23的設備的授權來檢查包用戶統計信息。 正如https://developer.android.com/about/versions/android-5.0.html#System所述,我可以使用android.app.usage API。詢問PACKAGE_USER_STATS授權

該API的使用需要,我在清單中聲明此權限:

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

但是,如果我不 「忽略ProtectedPermissions」,AndroidStudio給了我這個錯誤:

enter image description here

問題:

  • 這是否意味着,如何在文檔中說明用戶還必須通過設置>安全性>使用訪問權限的應用爲此應用啓用訪問權限。,還是這兩樣東西都不相關?

  • 如何向用戶要求通過設置>安全性>具有使用權限的應用程序爲此應用程序啓用訪問權限。反正呢

  • 不管怎樣,爲什麼當我手動設置爲應用在設置>安全>應用程序,避免了以前的時候,我仍然當我到達這個代碼行沒有得到的對話框中,授權仍然沒有給出?這正是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!?? 
    

回答

0

你應該設置權限那樣;

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

希望它有幫助。