【androidjava】onActivityResultでintentがnullで帰ってきた時の対処法

asaba 著者:asaba

【androidjava】onActivityResultでintentがnullで帰ってきた時の対処法

intent.putExtraで保存した画像をonActivityResult側で取りたかったのでデバッグをしながら

作業をしていたのですが、中身をみるとなんとnullになっているではありませんかー!

多分、putExtraで外部ストレージに保存してしまったからだと思います。

こちらの応急処置としてはまずintent.putExtraを消してしまい、代わりに以下の

intent構文を書きます。

</pre>
<p class="default prettyprint prettyprinted">startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), 100);</p>

<pre>

こちらはonActivityResult側です。

</pre>
<pre>Uri yourCapturedImage = intent.getData();

敢えて何も保存せずにそのままintentに持たせるという荒業ですが後でデバッグ

をするとintentの中身にしっかりと画像が入っていたのでintentの中身でexifinterfaceとか

使う場合はこちらでもいいかなぁと感じました。

ただandroid8だと動作しないのでこちらは処理を分ける必要があります。

今回の件は、カメラを使ってあれこれするとこのように機種ごとに違う動作を求められるので

なかなかに鬼門でした。

※本当はintentがnullでもメンバ変数にUriを持たせれば普通にonActivityResult内で

使えるのでできるならばこっちのほうがおすすめです。というかみんなこっちで

やってるんだろうな・・・。

 

 

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

著者について

asaba

asaba author

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