我正在尝试访问手机上的相机。 在将代码放入小部件之前,我正在编写一个简单的存根应用程序。 我走的不远。 该代码始终会抛出一个运行时异常“无法连接到相机服务”。该代码(从通用软件示例中提取)出了问题:
@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..
我不知道为什么我没有权限,因为它已在清单中声明