onActivityResult()でintentがnullになっちゃうときに確認するリスト
http://developer.android.com/guide/topics/media/camera.htmlに沿ってカメラ連携をしてみようとしてハマった。
で、http://stackoverflow.com/questions/10042695/how-to-get-camera-result-as-a-uri-in-data-folder/10229228#10229228あたりが参考になったんだけど、外部メディア(SDカード)にデータをおこうとするとonActivityResult()のintentにはデータが返ってこないらしい。。
上記Androidのdeveloperサイトのこの部分のコードね。
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
えー、そうなんだ。。
まだ、両方のサイトを全部読んだわけじゃないけど実際にこのコード外したらデータ返ってきたよ。。
追記)
いろいろ調べてみると、Androidアプリ開発において、カメラ周りは鬼門だらけということらしく、一言で言うと各メーカーがちゃんと仕様通りに作ってないのか仕様があいまいなのか(たぶん前者)、機種ごとどころか同じ機種でもアップデートの状態によって挙動が変わってしまっている状態だそうで。。。
http://d.hatena.ne.jp/gabuchan/20101125/1290681748
このエントリはわかりやすく端末依存の一例と回避方法を紹介してくれてます。
英語がOKの人は適当にググると怒涛のstackoverflowラッシュで歴史を肌で感じられるかと。
初アプリを作っている身としてはテンション落ちるわー。。。