###前提・実現したいこと
お世話になります。monacaにてAndroidアプリを製作中です。 ほぼ完成となり、ベータ版をPlayStoreへ掲載しております。 Android実機は4.4系、5.x系、6.x系を所有しており、各端末での動作テストをしております。Android4,5系はインストール時に、カメラ使用の許可ダイアログが表示され、インストール完了すれば問題無く使用が可能ですが、Android6ではインストール時のカメラ使用の許可問合せがなく、アプリ内でカメラを起動しようとすると、エラーで起動できなくなっています。 原因はAndroid6からのruntime permissionであるとわかっておりますが、これを回避していく方法として、下記の2点を考えております。 1.monacaで、スマホのカメラにおけるpermissionを取得して、許可されていない場合には、許可のダイアログを表示する。もしくは、設定ページにジャンプし、カメラ使用の許可をとる。 2.ビルド時、アプリインストール時に許可を求めるようなビルドの仕方とする。Android6からの仕様変更なのですが、sdkバージョンを22以下にしておけば、旧来通りのインストールができるそうです。 ###試したこと 上記1にて、cordovaプラグインのcordova-plugin-android-permissionsをimportし、npmに記載の下記のコードを試しました。 var permissions = cordova.plugins.permissions; permissions.hasPermission(permissions.CAMERA, checkPermissionCallback, null); function checkPermissionCallback(status) { if(!status.hasPermission) { var errorCallback = 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があったので、そこに <uses-permission android:name="android.permission.CAMERA" /> を追記してみましたが、効果無しでした。 monacaのドキュメントには、AndroidManifest.xmlは既に使わない仕様となっているようで、クラウドIDE上では通常見えないファイルとなっています。ちなみに、sdkバージョンは22となっておりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。