私のアプリには次の意図フィルターがあります
<intent-filter>
<action android:name="android.media.action.IMAGE_CAPTURE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
カメラのインテントに応答するアプリのリストから自分のアプリを選択できます。
ここで、アプリでビットマップを作成し、SD カードの一時的な場所に保存します。
このビットマップを呼び出し元のアプリに返します
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND, Uri.parse("file:///sdcard/image.png"));
shareIntent.setType("image/png");
this.setResult(Activity.RESULT_OK, shareIntent);
this.finish();
ただし、このイメージを読み込めるアプリはありません。メッセージング アプリで、「申し訳ありませんが、この画像をメッセージに追加することはできません。」というエラーが表示されます。連絡先アプリで「読み込みに失敗しました!」というエラーが表示されます。画像が適切な場所に保存されることを確認しました。私も試してみました
shareIntent.putExtra("data",bitmap);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/image.png"));
また、ビットマップを JPEG として保存しようとしました。
ただし、これらはどれも機能しません。呼び出し元のアクティビティに画像を返す他の方法はありますか? Androidカメラはどのように画像を返しますか?