Dreamweaver + PhoneGapで作成したアプリの権限を変えたい時

投稿者: | 2013年3月28日

Adobe Dreamweaver 5.5から採用されたPhoneGapを使ってのアプリ作成は、特別な知識が無くてもハイブリッドアプリの作成を可能にしたが、

[サイト] → [モバイルアプリケーション] → [ビルド] → [Android](Androidアプリの場合)

から書き出されるアプリには無条件で多くの権限が付いてしまっている。
実際に様々な情報を端末から得ているのであれば当然だが、特にそんな機能を持たせていないのにインストールの際に余分が権限で利用者を不安にさせるのは好ましくない。

Dreamweaverからのビルドの変更(設定)できないアプリの権限を変えたい場合は以下の手順で行えば良い。

必要なのはEclipse
Eclipseのインストールや設定は既に済ませてあるとして話を進める。

まずはDreamweaverで

[サイト] → [モバイルアプリケーション] → [ビルド] → [Android](Androidアプリの場合)

の手順でビルドを済ませておく。

次に、Eclipse

[ファイル] → [新規] → [その他…] と進み

[Android] → [既存コードからの Android プロジェクト] → [次へ >] をクリック

[ルート・ディレクトリー] → [参照…] をクリック

Dreamweaverでビルドしたファイルのフォルダを選択して [開く] をクリック

プロジェクト:
[Project to Import] と[新規プロジェクト名](DefaultActivity)が入っていることを確認
左にチェックが付いていることを確認
(※新規プロジェクト名(DefaultActivity)はこの時点で変更することも可能)

[プロジェクトをワークスペースにコピー] にチェックを付ける

[完了] をクリック

これでパッケージ・エクスプローラーにDefaultActivityが表示される。
DefaultActivityをダブルクリック
直下にあるAndroidManifest.xmlをダブルクリックして開く
(binの中にもAndroidManifest.xmlがあるが直下のファイルを開く)
中身を見るとandroid.permissionで様々な権限が設定されているのが確認できる。

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />   
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />

この中で、作成したアプリで必要なものを残し削除する。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />

上記の例は、位置情報を取得して情報を表示するアプリ
位置情報の取得と、データをネットから取得するため、
ACCESS LOCATION類やINTERNETが必要

不要なuses-permissionを削除したら、パッケージ・エクスプローラーのDefaultActivityを選択した状態で

[実行] → [実行] → [Androidアプリケーション] [OK] をクリック

エラーがなければエミュレータが立ち上がり
workspaceのDefaultActivity内のbinフォルダ内にDefaultActivity.apkが作られる。

.apkファイルをサーバにアップロードして、Android端末のブラウザでアクセス

[ダウンロード] → [インストール](事前に設定 セキュリティで「提供元不明のアプリ」のインストールを許可しておくこと)

[設定] → [アプリ] 該当のアプリの情報を見ると

権限が減ったことが確認できる。

あとは実際に必要な権限を削除してしまっていないかアプリの機能を確かめて終了。