如何在android中获得相机的权限。(特别是棉花糖)

新手上路,请多包涵

嘿,我正在 android studio 中设计一个应用程序。在其中我需要相机的许可。我在 AndroidManifest.xml 文件中包含了 <uses-permission android:name="android.permission.CAMERA" /> 。它在除 Marshmallow 之外的所有版本的 android 中都能正常工作。我如何默认获得相机权限?如果不可能,我该如何向用户询问?

原文由 Toyas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 768
2 个回答

首先检查用户是否已授予权限:

 if (ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA)
    == PackageManager.PERMISSION_DENIED)

然后,您可以使用它向用户请求:

 ActivityCompat.requestPermissions(activity, new String[] {Manifest.permission.CAMERA}, requestCode);

而在 Marshmallow 中,它会出现在一个对话框中

原文由 Serch 发布,翻译遵循 CC BY-SA 4.0 许可协议

获得许可的最简单方法之一是使用 detex 库。像下面在你的 gradle 中实现以下库。

     implementation 'com.karumi:dexter:6.2.2'

添加库后使用此权限,如下所示

        Dexter.withContext(this)
            .withPermissions(
                    Manifest.permission.CAMERA
            ).withListener(new MultiplePermissionsListener() {
        @Override public void onPermissionsChecked(MultiplePermissionsReport report) {/* ... */}
        @Override public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {/*
        ... */}
    }).check();

不要忘记在清单中添加用户权限

      <uses-permission android:name="android.permission.CAMERA" />
      <uses-feature android:name="android.hardware.camera" />

原文由 Mazhar Iqbal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题