在Android中扩展类应用程序?

时间:2016-11-28 07:19:20

标签: java android

我应该在运行时在类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:对不起我的英文:(

2 个答案:

答案 0 :(得分:0)

如果您的目标是使用MarshMallow OS的设备?然后,您必须在代码中实现运行时请求权限概念。

但为什么有必要实施?

因为当我们安装应用程序时,MarshMallow不会要求许可。

它引入了一项新功能,即在运行时请求权限。这意味着您必须在运行时授予外部存储读/写,发送/接收SMS,访问摄像头等权限。

这个概念很有用,因为用户可以随时了解每个&他/她授予申请的每项许可。用户可以通过设置>>撤消授予的权限应用>>拍摄照片应用>>他/她的设备的权限。

如果您没有实现运行时权限,那么您的应用程序将崩溃或无法在具有MarshMallow的设备上正常运行。

有两种类型的权限类别:

  • 危险
  • 正常

您可以详细了解here

以上的权限

两种类型的权限都必须在AndroidManifest.xml中定义,但只有危险权限才需要运行时请求。

在安装时已请求正常权限,以后无法撤消。例如:android.permission.INTERNET

答案 1 :(得分:0)

您可以按照 @Abhishek Singh 检查Application类中的权限,Marshmallow的目标设备需要获得许可,您也必须处理该权限。更多检查here