3

アプリケーションでデフォルトのカメラを開く方法は?

そのためのセレクターを開きたくありません (クライアントの要件)。私はこのインテントandroid.media.action.IMAGE_CAPTUREと呼び出しアクティビティを結果に使用しています。

すべて問題ありませんが、Line Camera、Paper Cameraなどのアプリがデフォルトのカメラ アプリでセレクターに表示されます。セレクターを表示したくありません。

あなたの注意は非常に高く評価されます。

4

3 に答える 3

2
    List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
    for (int n=0;n<list.size();n++) {
        if((list.get(n).flags & ApplicationInfo.FLAG_SYSTEM)==1)
        {
            Log.d("TAG", "Installed Applications  : " + list.get(n).loadLabel(packageManager).toString());
            Log.d("TAG", "package name  : " + list.get(n).packageName);
            if(list.get(n).loadLabel(packageManager).toString().equalsIgnoreCase("Camera")) {
                defaultCameraPackage = list.get(n).packageName;
                break;
            }
        }
    }

次の解決策が見つかり、完全に機能しています。

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.setPackage(defaultCameraPackage); 
startActivityForResult(takePictureIntent, actionCode);

上記の意図でパッケージを設定することにより、デフォルトのカメラをフィルタリングできます。Line CameraPaper Cameraの2 つのアプリケーションをインストールしてテストしましたが、どちらのアプリもセレクターを表示していましたが、上記のコードでパッケージによるフィルタリングを行うと、デフォルトのカメラのみが開きます。

于 2013-09-27T12:52:45.237 に答える
0

以下のリンクで答え(およびコード)を見つけることができると思います:

インテントを使用して Android カメラを起動する方法

著者は具体的に次のように述べています。「上記のコードは、電話でデフォルトのカメラ アクティビティを開始する必要があります」

于 2013-09-27T12:52:15.530 に答える