11

デフォルトのカメラを起動したいのですが、ランチャーから開始されたように動作させたいです (つまり、結果の画像は、アプリに返されるのではなく、カメラ アプリによってユーザーのギャラリーに保存される必要があります)。を使用するIntent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);と、カメラ アプリは "OK? Retry?" UI を使用し、写真を保存しません。com.android.camera多くのデバイスがカスタム カメラ アプリを使用しているため、「直接」インテントは使用したくありません。ストック gallery3d-appcom.android.camera/.Cameraが を実装するエイリアスを使用していることを見てきましたが、すべてのプリロードされたメーカーのカメラ アプリがこれを行っているかどうかはわかりません。

4

2 に答える 2

13

私は今、次のように実装しました:

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
try {
    PackageManager pm = mContext.getPackageManager();

    final ResolveInfo mInfo = pm.resolveActivity(i, 0);

    Intent intent = new Intent();
    intent.setComponent(new ComponentName(mInfo.activityInfo.packageName, mInfo.activityInfo.name));
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    startActivity(intent); 
} catch (Exception e){ 
    Log.i(TAG, "Unable to launch camera: " + e); 
}
于 2013-09-03T23:34:55.183 に答える