Cordovaを利用したハイブリッドアプリを作成する際、ネイティブ機能を利用する場合は、Cordovaプラグイン経由でアクセスする必要があります。
利用するCordovaプラグインでAndroidパーミッションの設定が必要な場合は、Cordovaプラグインの設定ファイルであるplugin.xmlに記載されています。
例として、cordova-plugin-cameraプラグインのplugin.xmlには、下記のように設定されています。
<platform name="android">
<config-file target="AndroidManifest.xml" parent="/*">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</config-file>
</platform>
cordova-plugin-cameraプラグインでは、外部記憶領域への書き込みに対する「WRITE_EXTERNAL_STORAGE」が、設定されています。
このplugin.xmlに設定されているパーミッションは、ビルド時にAndroidManifest.xmlに書き込まれます。
開発するアプリで、外部記憶領域への読み込みのみ必要な場合は、cordoba-plugin-cameraプラグインのGitHub からダウンロードしたzipファイルを解凍し、plugin.xmlの「WRITE_EXTERNAL_STORAGE」を「READ_EXTERNAL_STORAGE」に変更し、再度zipファイルにすることにより、パーミッションを変更させたカスタムCordovaプラグインを作成することができます。
ビルドしたapkファイルに設定されているパーミッションは、AXMLPrinter2.jar を利用することで確認することができます。
確認手順
- ビルドしたファイルの拡張子を「apk」から「zip」に変更し、解凍します。
- 解凍したファイルにあるAndroidManifest.xmlを任意の場所にコピーします。
- ターミナルで下記のコマンドを入力し、実行します。
java -jar AXMLPrinter2.jar AndroidManifest.xml