当我使用
androidx.test.core.app.launchActivity
启动我的活动时,似乎会自动授予位置权限。
我在网上搜索过,只能找到人们想要找到手动授予这些烫发方法的线程,我似乎遇到了相反的问题。
我需要测试 loc perm 请求对话框,所以这对我来说是个问题。
它给你敲响了警钟吗?这是我一直在使用的非常简单的代码:
import androidx.test.core.app.launchActivity
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class TestEspresso {
@Test
fun test() {
launchActivity<Activity4Testing>()
}
}
InstrumentationRegistry.getInstrumentation().uiAutomation.executeShellCommand("pm revoke ${context.packageName} android.permission.ACCESS_COARSE_LOCATION")
InstrumentationRegistry.getInstrumentation().uiAutomation.executeShellCommand("pm revoke ${context.packageName} android.permission.ACCESS_FINE_LOCATION")
当活动准备就绪时,就像在
ActivityScenario
回调中一样,您可以执行此操作
ActivityScenario.launch(YourActivity.class).onActivity(activity -> {
InstrumentationRegistry.getInstrumentation().getUiAutomation()
.grantRuntimePermission(activity.getPackageName(), "android.permission.ACCESS_COARSE_LOCATION");
InstrumentationRegistry.getInstrumentation().getUiAutomation()
.grantRuntimePermission(activity.getPackageName(), "android.permission.ACCESS_FINE_LOCATION");
});
我想只要活动准备好就可以这样做。您可以在此处
找到文档