2016-10-17 2 views
0

Я использую камеру для сканера штрих-кода. Приложение и на некоторых устройствах (LG G Flex, Asus Nexus 7) Получение: Android Время выполнения Исключение -Свободно подключать службу камеры. Вот отрывок из menifest файла ниже:Исключение времени выполнения Android -Failed для подключения службы камеры.

`uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" 
uses-permission android:name="android.permission.CAMERA" 
....` 

Я выпускаю камеру на паузу, остановить и уничтожить.

/** 
* Restarts the camera. 
*/ 
@Override 
protected void onResume() { 
super.onResume(); 
try { 
startCameraSource(); 
} catch (Exception e) { 
e.printStackTrace(); 

    } 
} 

/** 
* Stops the camera. 
*/ 
@Override 
protected void onPause() { 
    super.onPause(); 
    if (mPreview != null) { 
     mPreview.stop(); 
    } 
} 

/** 
* Releases the resources associated with the camera source, the associated detectors, and the 
* rest of the processing pipeline. 
*/ 
@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    if (mPreview != null) { 
     mPreview.release(); 
    } 

} 

По-прежнему происходит превышение исключения во время выполнения, и у меня нет над двумя устройствами, чтобы я мог воспроизводить. Есть ли решение этой проблемы?

ответ

0

Привет вам нужно добавить следующие разрешения в menifest файле

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

Если вы используете модель Android M разрешения, сначала нужно проверить, если приложение имеет такое разрешение во время выполнения, и должны побудить пользователя для этого разрешения во время выполнения. Разрешение, которое вы определяете в своем манифесте, автоматически не будет предоставлено во время установки.

if (checkSelfPermission(Manifest.permission.CAMERA) 
    != PackageManager.PERMISSION_GRANTED) { 

requestPermissions(new String[]{Manifest.permission.CAMERA}, 
     MY_REQUEST_CODE); 
} 

Вам потребуется обратный вызов для диалогового результата:

@Override 
public void onRequestPermissionResult(int requestCode, String[] permissions,  int[] grantResults) { 
if (requestCode == MY_REQUEST__CODE) { 
    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
     // Now user should be able to use camera 
    } 
    else { 
     // Your app will not have this permission. Turn off all functions 
     // that require this permission or it will force close like your 
     // original question 
    } 
} 
}