我试图访问我的手机上的摄像头。我在将代码放入窗口小部件之前编写一个简单的存根应用程序。我不是很远。代码总是抛出一个运行时异常“连接到相机服务失败”代码(从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日更正):
package="com.nbt.cameratest"
android:versionCode="1"
android:versionName="1.0" >
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
android:label="@string/app_name"
android:name=".CameraTestActivity" >
任何人都可以建议什么可能是错误?
更新10月20日
在SDK 4.0中的logcat被打破,不会显示日志的结束,所以我已经削减了这一点,因为我可以从命令行adb 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.(Camera.java:294)
W/System.err( 5744): at android.hardware.Camera.open(Camera.java:255)
etc..
我不知道为什么我没有权限,因为它是在清单中声明