授予在我的應用程序中的帳戶權限組的所有權限,我需要創建一個帳戶以下權限:不能自動
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
這是我的理解是,在男,這些應該被自動授予。
但是,我所看到的是隻有GET_ACCOUNTS被授予。我檢查這個用下面的代碼:
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
logPermissionStatus(Manifest.permission.GET_ACCOUNTS);
logPermissionStatus(Manifest.permission.MANAGE_ACCOUNTS);
logPermissionStatus(Manifest.permission.AUTHENTICATE_ACCOUNTS);
logPermissionStatus(Manifest.permission.USE_CREDENTIALS);
}
private void logPermissionStatus(String permission) {
if (checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED) {
Log.d("AccountPermissions", "Granted: " + permission);
} else {
Log.d("AccountPermissions", "Denied: " + permission);
}
}
它打印:
D/AccountPermissions﹕ Granted: android.permission.GET_ACCOUNTS
D/AccountPermissions﹕ Denied: android.permission.MANAGE_ACCOUNTS
D/AccountPermissions﹕ Denied: android.permission.AUTHENTICATE_ACCOUNTS
D/AccountPermissions﹕ Denied: android.permission.USE_CREDENTIALS
如果我嘗試請求權限
requestPermissions(new String[] {
Manifest.permission.GET_ACCOUNTS,
Manifest.permission.MANAGE_ACCOUNTS,
Manifest.permission.AUTHENTICATE_ACCOUNTS,
Manifest.permission.USE_CREDENTIALS,
}, 1);
對話框說「允許AccountPermissions執行未知的行動?「,導致我相信這些並不打算要求用戶。此外,ACCOUNT權限組在應用信息頁面的舊版權限下顯示。
我需要做些事情來讓Android自動授予我這些權限,還是我真的應該從用戶請求它們?
我認爲有做了很多清理工作版本的Android M船舶之間現在,當涉及到新的許可制度,也有很多是在這同一條船上的權限。我不會太擔心,並且在未來的跨國公司預告中再次嘗試是否以及何時發佈。 – CommonsWare
@CommonsWare我認爲可能是這樣,但我希望我錯過了一些東西。如果這個功能更完整,會很好,因爲它可以說是最需要對應用程序進行更改的東西。 – SimonVT
我認爲在這種情況下最好的做法是打開一個錯誤報告 – greywolf82