8

私の Android アプリケーションの junit テストには android.permission.WRITE_SETTINGS が必要です。IntelliJ Idea 11.1.2 と、テスト用の 2 番目の AndroidManifest.xml を含む独自のモジュールで単体テストを使用しています。

<uses-permission android:name="android.permission.WRITE_SETTINGS" />テスト モジュールの AndroidManifest.xmlに追加しました。

エラー:java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=1063, uid=10035 requires android.permission.WRITE_SETTINGS

醜い簡単な修正:アプリケーションの AndroidManifest.xml にも同じアクセス許可を追加します。テストは単一のエラーなしで実行されます。

問題:アプリケーション全体に設定を変更する権限を与えたくありません。

テストのみにアクセス許可を与える方法はありますか?

4

1 に答える 1

6

テストのみにアクセス許可を与える方法はありますか?

短い答えはノーです。

Android テスト プロジェクトと Android アプリケーション プロジェクトは、実際には test.apk が app.apk とランタイムを計測する 2 つのアプリケーションです。<uses-permission> はアプリケーションごとにあり、テスト プロジェクトの AndroidManifest.xml に追加すると、test.apk に必要な権限のみが付与され、テスト中のアプリケーション、つまり app.apk には付与されません。

于 2012-06-13T09:33:45.167 に答える