Androidデバイスの外部ストレージの写真フォルダーへのパスである文字列ファイル名があります。文字列を使用してopencvで画像を保存しています。次に、保存した画像を他のアプリと共有するための共有インテントを送信します。
Highgui.imwrite(filename, Image);
Log.d("WRITEPATH", filename);
LogCat では、WRITEPATH を取得します。
/storage/emulated/0/Pictures/MyImages/Image1.jpg
次に、filepath-string を uri に変換します。
Uri lastsavedUri=Uri.parse(new File(filename).toString())
そして、共有インテントを送信します。
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, SavedImages);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "Share images to.."));
SavedImagesは、複数のlastsavedUriを含む ArrayList です
残念ながら、共有しようとしている画像を見つけることができるアプリはありません。たとえば、[メールを送信] をクリックすると Gmail がクラッシュし、logcat エラーが表示される
10-07 10:19:47.265: E/Gmail(26264): サムネイルの向きを取得できません /storage/emulated/0/Pictures/MyImages/Image1.jpg 10-07 10:19:47.265: E/Gmail(26264 ): java.io.FileNotFoundException: コンテンツ プロバイダがありません: /storage/emulated/0/Pictures/MyImages/Image1.jpg
ファイルパス文字列を使用して画像を保存できるのに、保存した画像を共有できないのはなぜですか? パスが正しくありませんか?保存した画像への正しいパスを取得するにはどうすればよいですか?