Espresso 自动授予位置权限

问题描述 投票:0回答:2

当我使用

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>()
    }
}
android kotlin android-espresso android-instrumentation
2个回答
1
投票
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")

0
投票

当活动准备就绪时,就像在

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");
});

我想只要活动准备好就可以这样做。您可以在此处

找到文档
© www.soinside.com 2019 - 2024. All rights reserved.