4

当我的应用在 Google Nexus 7 平板电脑上运行时,此标准 Android 测试返回 false 以查看设备是否配备了摄像头。

    PackageManager pm = this.getPackageManager();
    if(!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
        // disable camera button
    }

现在我意识到 Nexus 7 没有内置相机应用程序,但是当我尝试启动相机活动时,我使用以下内容(让用户可以选择其他应用程序)。

    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); 

现在显然我没有得到这个代码,因为相机测试失败并且我禁用了按钮,但似乎只要我在我的 Nexus 7 桌子上安装了相机应用程序,我就应该能够拍照。

有谁知道我可以用来在此平板电脑(或类似设备)上启用此功能的替代测试?

4

4 回答 4

9

你可以检查一下FEATURE_CAMERA_FRONT,因为 Nexus 7 只有一个前置摄像头。

于 2012-10-04T22:10:53.163 回答
4

尝试检查PackageManager.FEATURE_CAMERA_FRONTas 和FEATURE_CAMERA,因为 Nexus 7 只有前置摄像头,而 Android 摄像头选择算法默认为后置摄像头。

于 2012-10-04T22:11:03.030 回答
4

作为答案的更新:

API 级别 17开始,您还可以检查PackageManager.FEATURE_CAMERA_ANY哪个指示设备是否有任何摄像头,无论其位置如何。

于 2014-05-08T09:19:45.227 回答
1

查看文档,它说 FEATURE_CAMERA 与背对屏幕的相机有关,它本质上是后置相机。所以理所当然地它应该返回假。

于 2014-03-07T09:30:21.170 回答