2022-03-18
intentで、Fileをそのまま送ろうとするとヌルポを返されて
クラッシュ。
スタックオーバーフローによると、fileは
そのままアクティビティに入れる・データベースに格納
しようとするとディレクトリの複製を拒むため参照元が
全部リセットされて何もない状態で送られること
になり、遷移先でfileを開けようとしてもfileがないと見なされ、
これにより実行ができないために起きるみたいですね。
なので、intentで何かのfileを渡すときはUriに加工して送りましょう。
uriの加工はfileproviderで簡単にできるのでそちらを使用。。。
サンプルで簡単に書くとこのようになります。
送る側
Uri intentUri = FileProvider.getUriForFile(this, getPackageName() + ".provider",photoFile); entryintent.putExtra("uri", intentUri); startActivity(entryintent);
受け取る側
Intent intent = getIntent(); Uri uri = intent.getParcelableExtra("uri");
これでどこのアクティビティでもUriを使うことができるので
お試しください。