LoginSignup
1
0

More than 3 years have passed since last update.

Android8でcordova-camera-pluginを使うと"Error capturing image"とエラーメッセージが返ってくる

Posted at

TL; DR

cordova-camera-pluginのバージョンを4.0.2以上にあげる

概要

saveToPhotoAlbumをtrueにして、getPicture()関数を呼んだ際にErrorCallbackがよばれて、Error capturing imageというメッセージが返ってくる。

原因

Android8からパーミッション(permission)の扱いが変わったため。
saveToPhotoAlbumをtrueにしていると、端末に写真を保存するので書き込み権限(WRITE_EXTERNAL_STORAGE)が必要です。
バージョン4.0.2以前はその際に読み込み権限(READ_EXTERNAL_STORAGE)のみを指定していました。
Android8未満ではそれでも問題なく動作したのですが、Android8移行では書き込み権限も要求するようになったため写真の保存ができずエラーになっていました。

詳しくはチケットが起票されているのでそちらをご参照ください。
https://issues.apache.org/jira/browse/CB-13781

解決策

  1. バージョン4.0.2以上にあげる
    1番シンプルな解決策。
  2. オプションのsaveToPhotoAlbumをfalseにする
    何らかの事情でプラグインのバージョンを上げれない場合の回避策(workaround)になります。
    saveToPhotoAlbumがfalseだと端末に写真を保存しないので権限が必要ないです。
    詳しくは以下を見てください。
    https://stackoverflow.com/questions/29392639/error-capturing-image-with-phonegap-on-android

雑談

Monacaを使用していてmonacaのバージョンを6.5→7.1に上げた際にcorodova-camera-pluginのバージョンも更新される。
ただ、そのバージョンが4.0.1でちょうど本事象が解決される前のバージョン。
ほんと困るなあ。
今回の件は、Androidの不具合修正によって引き起こされた不具合。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0