当我的应用程序在谷歌Nexus 7平板电脑上运行时,它会返回false,以进行这项标准的Android测试,以查看该设备是否配备了摄像头。
PackageManager pm = this.getPackageManager();
if(!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
// disable camera button
}现在我意识到Nexus7没有内置相机应用程序,但当我尝试启动相机活动时,我会使用以下命令(让用户选择其他应用程序)。
File fTempCameraFullDirPath = new File(msTempCameraFullDirPath);
Uri outputFileUri = Uri.fromFile( fTempCameraFullDirPath );
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult(Intent.createChooser(cameraIntent, getString(R.string.select_camera_app)), REQUEST_CODE_CAMERA); 现在很明显,我没有得到这个代码,因为相机测试失败,我禁用了按钮,但似乎只要我在我的Nexus7桌面上安装了相机应用程序,我就应该能够拍照。
有没有人知道可以用来在这台平板电脑(或类似设备)上启用此功能的替代测试?
发布于 2012-10-05 06:10:53
你可以查看FEATURE_CAMERA_FRONT,因为Nexus7只有一个前置摄像头。
发布于 2012-10-05 06:11:03
尝试检查PackageManager.FEATURE_CAMERA_FRONT和FEATURE_CAMERA,因为Nexus7只有前置摄像头,而安卓摄像头选择算法默认使用后置摄像头。
发布于 2014-05-08 17:19:45
作为对答案的更新:
由于API17级,您还可以检查PackageManager.FEATURE_CAMERA_ANY,它指示设备是否有摄像头,无论其位置如何。
https://stackoverflow.com/questions/12736715
复制相似问题