【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内で

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

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

 

 

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

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

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

CTR IMG