【问题标题】:Camera working without camera permission?相机在没有相机许可的情况下工作?
【发布时间】:2011-09-25 16:01:26
【问题描述】:

在我们的一个应用程序中,我们使用相机意图来拍照。这适用于真实设备 - 无需相机许可。

这是正确的还是我应该将它添加到这个应用程序清单中?

ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Images.Media.DESCRIPTION, "Image capture");
contentValues.put(MediaStore.Images.Media.TITLE, "new image");

Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

startActivityForResult(intent, 1);

TIA

【问题讨论】:

    标签: android permissions camera


    【解决方案1】:

    看到这个: http://mobile.tutsplus.com/tutorials/android/android-sdk-quick-tip-launching-the-camera/

    这里有两件事需要注意。第一的: 关于权限的说明: 尽管您的应用程序正在利用相机,但它不需要具有 android.permission.CAMERA 权限,因为它不直接访问相机。相反,它只是通过 Intent 启动相机应用程序。

    不过,我在 developer.android.com 上的任何地方都没有看到这一点,所以这可能是错误的,并且正在发生其他事情。

    您似乎只需要直接访问相机图元的权限,而不是通过 Intent。

    请注意,上面的同一个 URL 还指出您应该声明该功能,以防止没有摄像头的用户在市场上看到您的应用。

    【讨论】:

    • 你能详细解释一下吗,我试过这个“Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(intent, 0);”它未经许可打开相机为什么会发生这种情况?
    【解决方案2】:

    要加起来上面的答案,这里有两种访问相机的方法:

    在第一种情况下,您使用相机 api 并直接在您的应用中使用相机。因此,您需要请求相机权限(android.permission.CAMERA)。

    在第二种情况下,您打开操作系统的相机活动。在这种情况下,Android 不需要请求权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2015-09-19
      相关资源
      最近更新 更多