8

公式の AVD rev を使用します。3

これを呼び出す:

ActivityCompat.requestPermissions(activity, new String[]{"android.permission.USE_CREDENTIALS"}, REQUEST_PERMISSION_CREDENTIALS);

すぐに発火します:

onRequestPermissionsResult (int requestCode, String[] permissions, int[] grantResults)

そして結果のコードはPackageManager.PERMISSION_DENIED

誰でも修正がありますか?

更新: 影響を受けることが知られている:

Manifest.permission.CHANGE_NETWORK_STATE
Manifest.permission.WRITE_SETTINGS (solved, see Sam's answer)
android.permission.USE_CREDENTIALS (solved, read Update 2)
READ_SMS

更新 2: 受け入れられた優れた回答を参照してください。基本的に、現在 USE_CREDENTIALS は安全なパーミッションです。sdk が単純に PERMISSION_GRANTED を返さない理由がわかりません...

4

4 に答える 4

6

次のページを参照してください:保護レベルによるアクセス許可および保護レベルの定義.

Manifest.permission.CHANGE_NETWORK_STATE

Manifest.permission.WRITE_SETTINGS

これらは保護レベル "signature|appop|pre23|preinstalled" に分類されます。つまり、同じ署名アプリ (基本的に署名されたシステム)、アプリ オペレーター、API レベル 23 未満を対象とするアプリ、およびプリインストールされたアプリのみがこれらを持つことができます。

android.permission.USE_CREDENTIALS

これは、API レベル 22 以下でのみ必要です。これを参照してください。

また、Behavior Changesも確認してください。

于 2015-08-22T22:31:46.453 に答える
1

整理できたようですね。私はこれと同じ症状を、もっと愚かな原因で経験しました。

マニフェストのアプリケーション ノード内に uses-permission ノードがありました。これは 22 以下で動作するように見えましたが、23 に移行すると認識されないようで、許可が自動的に拒否されました。

うまくいけば、これは他の誰かがこれに固執するのに役立ちます。

于 2016-01-20T14:44:23.770 に答える