【androidjava】intentでFileを送りたい時の注意点

intentで、Fileをそのまま送ろうとするとヌルポを返されて

クラッシュ。

 

スタックオーバーフローによると、fileは

そのままアクティビティに入れる・データベースに格納

しようとするとディレクトリの複製をを拒むため参照元が

全部リセットされて何もない状態で送られること

になり、遷移先でfileを開けようとして実行ができないために起きるみたいですね。

なので、intentで何かのfileを渡すときはUriに加工して送りましょう。

uriの加工はfileproviderで簡単にできるのでそちらを使用。。。

 

サンプルで簡単に書くとこのようになります。

送る側

 

</pre>
Uri intentUri = FileProvider.getUriForFile(this, getPackageName() + ".provider",photoFile);
entryintent.putExtra("uri", intentUri);
startActivity(entryintent);
<pre>

 

受け取る側

 

</pre>
Intent intent = getIntent();
Uri uri = intent.getParcelableExtra("uri");
<pre>

 

これでどこのアクティビティでもUriを使うことができるので

お試しください。

 

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG