8

我的 Android 应用程序的 junit 测试需要 android.permission.WRITE_SETTINGS。我在他们自己的模块中使用 IntelliJ Idea 11.1.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 和运行时。<uses-permission> 是针对每个应用程序的,将其添加到测试项目的 AndroidManifest.xml 仅授予 test.apk 所需的权限,而不是正在测试的应用程序,即 app.apk。

于 2012-06-13T09:33:45.167 回答