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_FRONTNexus 7 には前面カメラしかないため、 を確認できます。

于 2012-10-04T22:10:53.163 に答える
4

Nexus 7 には前面カメラしかなく、Android カメラ選択アルゴリズムはデフォルトで背面カメラに設定されているためPackageManager.FEATURE_CAMERA_FRONT、 と を確認してみてください。FEATURE_CAMERA

于 2012-10-04T22:11:03.030 に答える
4

答えの更新として:

API レベル 17以降PackageManager.FEATURE_CAMERA_ANY、デバイスの位置に関係なく、デバイスにカメラがあるかどうかを示すものを確認することもできます。

于 2014-05-08T09:19:45.227 に答える
1

ドキュメントを見ると、FEATURE_CAMERA は、本質的に背面カメラである画面から離れたカメラに関連していると書かれています。したがって、当然のことながら、false を返す必要があります。

于 2014-03-07T09:30:21.170 に答える