Android的6棉花糖:对一些特定的权限请求即时与未显示的UI否认棉花、权限、Android、UI

由网友(简 % sheet)分享简介:使用官方AVD转。 3 Using official AVD rev. 3调用此:ActivityCompat.requestPermissions(activity, new String[]{"android.permission.USE_CREDENTIALS"}, REQUEST_PERMISSION_C...

使用官方AVD转。 3

Using official AVD rev. 3

调用此:

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

立即触发的:

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

和导致code是 PackageManager.PERMISSION_DENIED

任何人有一个修复?

更新:已知受影响:

UPDATE: Known to be affected:

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吧...

UPDATE 2: See excellent accepted answer. Essentially, USE_CREDENTIALS is a safe permission now. Beats me why sdk not simply return PERMISSION_GRANTED for it...

推荐答案

请参阅这些页面水平和保护级别定义的。

Refer to these pages: permissions by protection level and protection level definitions.

Manifest.permission.CHANGE_NETWORK_STATE

Manifest.permission.CHANGE_NETWORK_STATE

Manifest.permission.WRITE_SETTINGS

Manifest.permission.WRITE_SETTINGS

这些坠落下的保护级别签名| appop | pre23 | preinstalled,这意味着只有相同签名的应用程序(系统签订基本),应用运营商,针对低于API级别23和$应用p $ psintalled应用程序可以拥有这些。

These fall under the protection level "signature|appop|pre23|preinstalled" which means that only same-signature apps (system signed basically), app operators, apps that target below API level 23 and presintalled apps can have these.

android.permission.USE_CREDENTIALS

android.permission.USE_CREDENTIALS

这是只需要在API级别22及以下。见这个。

This is only needed on API level 22 and below. See this.

您也应该检查href="http://developer.android.com/$p$pview/behavior-changes.html" rel="nofollow">行为更改的

阅读全文

相关推荐

最新文章