Advanced/W-ZERO3[es] ファームウェア2.00a における、CameraCaptureDialog の不具合について(いまどこカメラの不具合について)
Advanced/W-ZERO3[es] の最新ファームを入れたところ、いまどこカメラの挙動がおかしい。2回目以降の撮影でなぜか位置情報取得以降のアクションにならない。
いまどこカメラの撮影機能は .NET CompactFramework に入っている CameraCaptureDialog という、必要な値を設定して ShowDialog というメソッドを呼び出すと、
標準のカメラアプリを起動して、カメラアプリの処理が終わったあとに制御を戻してその結果を返してくれる便利なクラスで作られています。
ブレークポイント入れて処理を追ってみたところ
- 起動して最初に写真を撮影する前は、特に問題なし
- カメラアプリが終了するまで元の処理は止まる。
- 撮影すると DialogResult.OK が返ってくる。
- キャンセルすると DialogResult.Cancel が帰ってくる ←ファーム 1.x だとここでフリーズ
- 1回でも写真を撮ったあとに挙動がおかしくなる
- 本来であれば処理がブロックされるはずなのに、カメラアプリを起動してすぐに ShowDialog が処理を戻す。
- その戻り値は常に DialogResult.Cancel になっているため、呼び出し元はキャンセルされたと誤認する。
うーん、これはファーム側のバグだよね?報告しよう。
CameraCaptureDialog を使った写真アプリを作られている作者さんは一度確認してみてください。