我正試圖訪問手機上的相機。在將代碼放入小部件之前,我正在編寫一個簡單的存根應用程序。我不是很遠。該代碼總是拋出一個運行時異常「無法連接到相機的服務」的出錯代碼(從commonsware例如捏)是:無法連接到相機服務
@Override
public void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
Camera.CameraInfo info = new Camera.CameraInfo();
for (int i = 0; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
try {
// Gets to here OK
camera = Camera.open(i);
} catch (Exception e) {
e.printStackTrace();
// throws runtime exception :"Failed to connect to camera service"
}
}
}
}
}
,我的清單是(修正10月20日):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nbt.cameratest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="9" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".CameraTestActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</application>
</manifest>
任何人都可以請建議什麼可能是錯的?
UPDATE 10月20日
的logcat在SDK 4.0壞了,不會顯示在日誌的末尾,所以我剪了該位是最好的,我可以從命令行亞行logcat:
W/ServiceManager(2588): Permission failure: android.permission.CAMERA from uid=10136 pid=5744
E/CameraService(2588): Permission Denial: can't use the camera pid=5744, uid=10136
W/System.err(5744): java.lang.RuntimeException: Fail to connect to camera service
W/System.err(5744): at android.hardware.Camera.native_setup(Native Method)
W/System.err(5744): at android.hardware.Camera.<init>(Camera.java:294)
W/System.err(5744): at android.hardware.Camera.open(Camera.java:255)
etc..
我不知道爲什麼我沒有,因爲它是在清單
你能否給我們帶有例外的Logcat輸出? –
現在沒有什麼可看的,因爲異常現在在catch塊中顯示爲'null'!?正如問題標題中所述。 logcat只顯示一個NPE。 – NickT
因此異常拋出你正在調用Camera.Open()? –