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

asaba 著者:asaba

【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を使うことができるので

お試しください。

 

  • この記事いいね! (0)

著者について

asaba

asaba author

好きなもの:RPG、チョコミント 少しずつ頑張ります。