我知道有很多像這樣的問題。但是,沒有任何解決方案適合我。我通過自學指南學習android。我的任務是使用Camera類實現攝像機服務。我知道相機已被棄用。不過,我打算使用Camera類來運行它。我無法連接到相機服務錯誤。我甚至沒有收到相機預覽。當我運行相機時,我所得到的只是一個黑屏和點擊按鈕,我點擊圖片。但是,第二次運行它會凍結我的手機,我必須拔出並放入電池再次工作。到目前爲止,我已經把所有的權限,該權限相機類需要 清單:Android相機沒有響應(無法連接到相機服務)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera2.full"></uses-feature>
<application>....</application>
我確保相機在所有需要的地方釋放。我瞭解到,如果我們不正確釋放相機,我們會發生此錯誤。 我的onPause()方法
@Override
public void onPause()
{
super.onPause();
if(camera!=null)
{
camera.release();
camera=null;
}
}
我的onResume方法
@Override
public void onResume()
{
super.onResume();
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.GINGERBREAD)
{
camera.open(0);
}
else {
camera.open();
}
我surfaceDestroyed方法
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if(camera!=null)
{
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera=null;
}
}
我surfaceCreated方法
public void surfaceCreated(SurfaceHolder holder) {
if(camera!=null)
{
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
Log.e(TAG, "ERROR SETTING UP PREVIEW", e);
}
}
}
我的控制檯輸出:
Process: course.examples.criminalintent, PID: 12954
java.lang.RuntimeException: Unable to resume activity {course.examples.criminalintent/course.examples.criminalintent.CrimeCameraActivity}: java.lang.RuntimeException: Fail to connect to camera service
經過一番調試,我發現我的相機在整個時間都是空的。這解釋了爲什麼我在屏幕上看不到相機預覽。但是,我不明白爲什麼它凍結我的手機,我應該如何使它正常工作?請詳細解釋。謝謝!