bitmapデータを他のアプリに渡す

bitmapのデータを他のアプリに引き渡したい場合、

つまり、メールに画像を添付する場合に、bitmapを送りたい時には画像を保存して、送る必要があります。

正確には、画像を送るのではなく画像のパスを送ります。

Y.A.M の 雑記帳: Android Intent に Bitmap を渡す方法

を使えば、もしかすると小さいデータなどは遅れるかもしれませんが、大きなビットマップのデータなどは、一度保存をしてから送る方が無難かと思います。

 

方法としては、まず画像を保存します。

お絵かきアプリで書いた絵を保存する。

で行った方法で問題ありません。

 

データの送信は次のように行っております。

Uri uri = Uri.parse(画像へのpath);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/*");

 

ただ、これで画像を送ると、画像のデータが送れているようなのですが、どうもうまくできません。

エラーが発生してしまいます。(発生しなくてこのままで問題ない場合もあるかと思います!)

 

プレビューの確認などはできるのだけど、送信などができません。(galaxyで。他の機種は未確認)

送っているものがパスのデータであるので、パスが間違っているようです。

 

パスのデータを取得をすると、

/sdcard/maps/12315464.jpeg

みたいな形で送られています。

 

ここで、パスのデータのもとを考えると、

file:///sdcard/maps/12315464.jpeg

のようにfile://を利用して表現をしてあげます。

 

僕は下記のような形で、file://を足しました。

path = "file:/"+"/"+path;

の用にコメントアウトされないように対処をして、足します。

 

以上で、

Intent intent=new Intent(Intent.ACTION_SEND);
Uri uri = Uri.parse("pathです。");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/*");startActivity(intent);

で、送ると、メールやtwitterで、画像の送信を同時に行えます。

twitterクライアントはtwicca@galaxy sで問題なく動作していました。

 

データがデータベースに登録されてしまうのは抵抗があるかと思いますが、ユーザー目線から送ったファイルのバックアップを保持している方が親切かと思います。無理に、画像を保存しない方法を模索しない方がよいかと思います。下記を利用して、保存した際に本体にも認識をさせてしまっても良い気がします。

保存した内容を本体に認識をさせる。

以上です。

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑