Android 6.0 RuntimeException: Fail to connect to c

2020-04-01 08:37发布

An error occurred with my app which ran in Nexus5 (Android6.0).

The error was

java.lang.RuntimeException: Fail to connect to camera service

I had added the permission to the AndroidManifest.xml.

But the app is OK with another phone(Android5.1), and genymotion AVD(Android 4.0).

The key code is below

 @Override
public void onResume() {
    super.onResume();
    try {
        mCamera = Camera.open();
    }catch (Exception e){
        Log.e(TAG,"open camera failed",e);
    }

}

5条回答
家丑人穷心不美
2楼-- · 2020-04-01 09:11

Add Camera Permission before Opening the Camera:

follow the Link for adding Permissions: https://developer.android.com/training/permissions/requesting.html

查看更多
倾城 Initia
3楼-- · 2020-04-01 09:20

This happens because, in Android 6.0 the permission model is different. You have to implement the new permission model which asks for the permission on run time. Even if you don't ask it, you can manually enable it in the phone's app setting, but that is not gona work when you publish your app in the play store. Here is an Article on How to get Run time permissions

Also you can check Nick's answer here for getting multiple permissions

查看更多
可以哭但决不认输i
4楼-- · 2020-04-01 09:24

From android 6.0 you can handle the app permission weather you will give or not specific permission for an application. In your case if you didn't enable camera permission for your app then this issues may arise.

So, you need to enable permission from settings->apps->your_app->enable camera permission.

查看更多
一夜七次
5楼-- · 2020-04-01 09:30

Write in your gradle.build targetSdkVersion 22. It is a temporary solution but work.

查看更多
对你真心纯属浪费
6楼-- · 2020-04-01 09:31

open Settings -> Apps -> click you app -> Permissions -> open Camera permissions.
you can see: http://developer.android.com/training/permissions/requesting.html

查看更多
登录 后发表回答