【问题标题】:Unable to grant Camera permission in Android Things无法在 Android Things 中授予相机权限
【发布时间】:2017-11-27 05:50:44
【问题描述】:

我正在使用 Raspberry PI3 板来运行 Android Things dev-preview 0.5.0。板上安装了一个摄像头。要手动授予相机权限,我在终端中运行以下命令:

adb shell pm grant org.tensorflow.demo android.permission.CAMERA

但是我得到以下错误作为回报:

不允许操作:java.lang.SecurityException:无法为包 org.tensorflow.demo 授予系统固定权限 android.permission.CAMERA

应用程序运行成功,但未捕获任何图像。

【问题讨论】:

  • 关闭再打开你的 pi 也会授予权限(在启动时)
  • 关闭和打开 pi 没有帮助。问题依然存在。
  • 更新到 AT 0.6.1

标签: android-things


【解决方案1】:

重新启动 RPi 对我不起作用。我发现手动授予权限解决了访问问题:

adb shell pm grant <your.package.name> android.permission.CAMERA

在 Github 上查看 this post

【讨论】:

    【解决方案2】:

    这是一个老问题,但现在工作得很好,几个月前你需要一次重启才能获得权限,但现在我不这样做了。否则,您可以尝试下一个代码示例:

    完整代码https://github.com/hpsaturn/bgcamera

    清单

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

    检查权限:

        // We need permission to access the camera
        if (checkSelfPermission(Manifest.permission.CAMERA)
                != PackageManager.PERMISSION_GRANTED) {
            // A problem occurred auto-granting the permission
            Log.d(TAG, "No permission");
            return;
        }
    

    初始化相机

    /**
     * Starts a builtin camera with api camera 2
     */
    private void startCamera() {
        CameraManager manager = (CameraManager) ctx.getSystemService(Context.CAMERA_SERVICE);
        try {
            String pickedCamera = getCamera(manager);
            manager.openCamera(pickedCamera, cameraStateCallback, null);
            mImageReader = ImageReader.newInstance(mWidth, mHeight, ImageFormat.YUV_420_888, 4 /* images buffered */);
            mImageReader.setOnImageAvailableListener(onImageAvailableListener, null);
            Log.d(TAG, "imageReader created");
        } catch (CameraAccessException e) {
            Log.e(TAG, e.getMessage());
        }
    }
    

    我基于 Android Things 的 Doorbell 示例的原始代码: https://github.com/androidthings/doorbell

    【讨论】:

    • 谢谢,但这些是我的代码中已有的确切行。
    【解决方案3】:

    我遇到了类似的问题,安装 apk 后我再次重新启动了树莓派。之后它对我来说工作正常。

    发生这种情况是因为:- 相机权限属于危险权限列表。为了获得这种许可,设备需要启动一次。希望这能澄清问题。

    【讨论】:

    • 是的,我自己也注意到了。你知道这是什么原因吗?
    • 相机权限属于危险权限列表。为了获得这种许可,设备需要启动一次。希望这能澄清问题。
    • 我重启了树莓派模块,问题依旧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    相关资源
    最近更新 更多