java.lang.RuntimeException:无法连接到相机服务
Posted
技术标签:
【中文标题】java.lang.RuntimeException:无法连接到相机服务【英文标题】:java.lang.RuntimeException: Fail to Connect to camera service 【发布时间】:2011-10-16 17:42:45 【问题描述】:我尝试制作一个可以打开和关闭相机闪光灯的应用。 我的 atm 代码如下所示:
Camera flash;
Camera.Parameters params;
flash = Camera.open();
params = flash.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
flash.setParameters(params);
在清单 xml 中:
<permission android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal" />
<permission android:name="android.permission.CAMERA"> </permission>
每次我运行代码时,应用程序都会在“flash = Camera.open();”处崩溃出现此错误:
java.lang.RuntimeException: 连接相机服务失败
我做错了什么?
【问题讨论】:
尽管清单部分存在格式问题,但我想说您必须为手电筒和相机使用要访问设备摄像头,您必须像这样在您的 Android Manifest 中声明 CAMERA 权限,
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
【讨论】:
这并不完全正确,您不需要使用 uses-feature 标签来访问相机:“声明的您可能忘记在onDestroy
中调用release
例如:
@Override
protected void onDestroy()
if (mCamera != null)
mCamera.release();
super.onDestroy();
【讨论】:
【参考方案3】:通常这个问题是由于缺少相机请求权限,正如其他用户已经说过的那样。
但是,只是在这里注册另一个原因,如果您尝试使用不存在的 cameraID 打开相机,您将收到同样的错误
java.lang.RuntimeException: 无法连接到相机服务
【讨论】:
【参考方案4】:您需要在 android 6.x 之前以编程方式添加新的请求权限。
private static final int MY_PERMISSIONS_REQUEST_CAMERA = 555;
if (ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(getActivity(), new String[]android.Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
else
IntentIntegrator.forSupportFragment(this).initiateScan();
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
switch (requestCode)
case MY_PERMISSIONS_REQUEST_CAMERA:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
IntentIntegrator.forSupportFragment(this).initiateScan();
else
FragmentHelper.popFragment(getActivity(), null, null);
【讨论】:
以上是关于java.lang.RuntimeException:无法连接到相机服务的主要内容,如果未能解决你的问题,请参考以下文章