アプリケーションでデフォルトのカメラを開く方法は?
そのためのセレクターを開きたくありません (クライアントの要件)。私はこのインテントandroid.media.action.IMAGE_CAPTURE
と呼び出しアクティビティを結果に使用しています。
すべて問題ありませんが、Line Camera、Paper Cameraなどのアプリがデフォルトのカメラ アプリでセレクターに表示されます。セレクターを表示したくありません。
あなたの注意は非常に高く評価されます。
アプリケーションでデフォルトのカメラを開く方法は?
そのためのセレクターを開きたくありません (クライアントの要件)。私はこのインテントandroid.media.action.IMAGE_CAPTURE
と呼び出しアクティビティを結果に使用しています。
すべて問題ありませんが、Line Camera、Paper Cameraなどのアプリがデフォルトのカメラ アプリでセレクターに表示されます。セレクターを表示したくありません。
あなたの注意は非常に高く評価されます。
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 CameraとPaper Cameraの2 つのアプリケーションをインストールしてテストしましたが、どちらのアプリもセレクターを表示していましたが、上記のコードでパッケージによるフィルタリングを行うと、デフォルトのカメラのみが開きます。
以下のリンクで答え(およびコード)を見つけることができると思います:
著者は具体的に次のように述べています。「上記のコードは、電話でデフォルトのカメラ アクティビティを開始する必要があります」