質問: function() { console.warn('Camera permission is not turned on'); } permissions.requestPermission( permissions.CAMERA, function(status) { if(!status.hasPermission) errorCallback(); }, errorCallback); } } monaca上ではhasPermissionが見えない、というようなエラーメッセージが表示されていました。 オブジェクトモデルがいまいち理解できず、window.pluginsとかcordova.pluginsとか色々変更してみましたが、その機能を使えるような状況にはなりませんでした。 上記2にて、monacaのローカルキットを使った場合、AndroidManifest.xmlがあったので、そこに を追記してみましたが、効果無しでした。 monacaのドキュメントには、AndroidManifest.xmlは既に使わない仕様となっているようで、クラウドIDE上では通常見えないファイルとなっています。ちなみに、sdkバージョンは22となっておりました。
回答: 自己解決です。 cordova pluginのdiagnosticを使い、下記のようにすれば、カメラ機能を呼び出す際に許可ダイアログが出て、動作が可能になりました。 Android5までは、インストール前に確認ダイアログが出て、Android6からはインストール時には何もダイアログが表示されず、カメラ機能を使う際に下記のコードを呼出て、許可のダイアログが出るようになりました。 function getBarcode(){ cordova.plugins.diagnostic.requestCameraAuthorization(function(status){ console.log("Authorization request for camera use was " + (status == cordova.plugins.diagnostic.permissionStatus.GRANTED ? "granted" : "denied")); if(status == cordova.plugins.diagnostic.permissionStatus.GRANTED) barcode_scan(); }, function(error){ console.error(error); }); }