Asus Nexus 7 2013 camera.open无法连接到相机服务 [英] Asus Nexus 7 2013 camera.open Fail to connect to camera service

查看:100
本文介绍了Asus Nexus 7 2013 camera.open无法连接到相机服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我仅在 Asus Nexus 7 2013 上有问题.所有其他设备,包括华硕Nexus 7 2012都可以正常使用.
该设备具有2个摄像机ID:0、1.
但是我无法同时使用它们打开相机.

I have an issue only on Asus Nexus 7 2013. All other devices, including Asus Nexus 7 2012 works fine.
This device has 2 camera IDs: 0, 1.
But I can't open camera, using both of them.

//...
try {
     //cameraID: 0 or 1
     camera = Camera.open(cameraID);
     //...
} catch (Exception e) {
     e.printStackTrace();
}

所以我得到了

java.lang.RuntimeException: Fail to connect to camera service
android.hardware.Camera.<init>(Camera.java:495)
android.hardware.Camera.open(Camera.java:341)

推荐答案

Android 6+的新功能存在问题:运行时请求权限.

Problem was in new Android 6+ feature: Request Permission at Runtime.

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    if (!permissionRequestInProgress) {
          permissionRequestInProgress = true;
              new Handler().post(new Runnable() {
                  @Override
                  public void run() {
                      if (ContextCompat.checkSelfPermission(RootActivity.this, Manifest.permission.CAMERA)
                              != PackageManager.PERMISSION_GRANTED)
                      {
                          ActivityCompat.requestPermissions(RootActivity.this,
                                        new String[]{Manifest.permission.CAMERA},
                                        CAMERA_PERMISSION_REQUEST);
                      } else {
                          //we got it
                      }
              }
           });
    }
}


@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    switch (requestCode) {
        case CAMERA_PERMISSION_REQUEST:
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // permission was granted
                //we got it
            } else {
                // permission denied
            }
            permissionRequestInProgress = false;
            break;
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}

这篇关于Asus Nexus 7 2013 camera.open无法连接到相机服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆