根据这个:http://developer.android.com/preview/features/runtime-permissions.html#coding应用程序可以检查运行时权限和请求权限(如果尚未授予它).然后将显示以下对话框:

如果用户拒绝重要权限,则应用程序应显示解释为何需要权限以及拒绝具有何种影响的解释.该对话框有两个选项:
Never ask again但是,如果用户检查,则不应显示带有解释的第二个对话框,尤其是如果用户之前已经拒绝过一次.现在的问题是:我的应用程序如何知道用户是否已检查过Never ask again?IMO onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)并没有给我这些信息.
第二个问题是:Google是否计划在权限对话框中添加自定义消息,以解释应用程序需要权限的原因?那样就永远不会有第二个对话框,肯定会有更好的ux.
我正在更新我的应用程序以兼容Android 6.权限模型在理论上并不复杂,但现在我正在实现它,我发现自己在每个需要权限的活动中编写了相同的丑陋样板代码.
对于我需要的每一个许可,都有一个
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.PERMISSION) !=
PackageManager.PERMISSION_GRANTED) {
} else {
}
Run Code Online (Sandbox Code Playgroud)
然后在onRequestPermissionsResult我必须检查/过滤每个请求的结果并将其转换为我的活动理解的内容.
我现在正在更新我的第二个活动,并且权限代码与第一个类似,它几乎看起来像是复制粘贴的.线条很长,代码很相似,看起来很丑陋.
我不想使用第三方解决方案,我尝试了一些,但我更愿意完全控制代码.例如,某些库不支持我在项目中使用的Java 8.
我可以做些什么来避免在我的所有活动中出现一堆重复的代码?
android android-permissions android-6.0-marshmallow runtime-permissions