我应该在运行时在类Application中应用权限吗? 例如:内部类扩展应用程序我写了一些代码而不是我在另一个类上写的:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(PhotoActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(PhotoActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(PhotoActivity.this,
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(PhotoActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA},
Constants.MY_PERMISSIONS_REQUEST_ACCESS_STORAGE);
}
}
P / s:对不起我的英文:(
答案 0 :(得分:0)
如果您的目标是使用MarshMallow OS的设备?然后,您必须在代码中实现运行时请求权限概念。
但为什么有必要实施?
因为当我们安装应用程序时,MarshMallow不会要求许可。
它引入了一项新功能,即在运行时请求权限。这意味着您必须在运行时授予外部存储读/写,发送/接收SMS,访问摄像头等权限。
这个概念很有用,因为用户可以随时了解每个&他/她授予申请的每项许可。用户可以通过设置>>撤消授予的权限应用>>拍摄照片应用>>他/她的设备的权限。
如果您没有实现运行时权限,那么您的应用程序将崩溃或无法在具有MarshMallow的设备上正常运行。
有两种类型的权限类别:
您可以详细了解here
以上的权限两种类型的权限都必须在AndroidManifest.xml中定义,但只有危险权限才需要运行时请求。
在安装时已请求正常权限,以后无法撤消。例如:android.permission.INTERNET
答案 1 :(得分:0)
您可以按照 @Abhishek Singh 检查Application
类中的权限,Marshmallow的目标设备需要获得许可,您也必须处理该权限。更多检查here。