浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【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)