谷歌Nexus 7表明它没有相机

时间:2012-10-04 22:05:22

标签: android android-camera tablet

当我的应用在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 个答案:

答案 0 :(得分:9)

您可以查看FEATURE_CAMERA_FRONT,因为Nexus 7只有一个前置摄像头。

答案 1 :(得分:4)

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

答案 2 :(得分:4)

作为答案的更新:

由于 API等级17 ,您还可以检查PackageManager.FEATURE_CAMERA_ANY,这表明设备是否有任何相机,无论其位置如何。

答案 3 :(得分:1)

docs它说FEATURE_CAMERA属于远离屏幕的摄像机,后者实际上是后置摄像头。理所当然,它应该返回false。