Ищите решение этой проблемы с разрешением, выполняя тест эспрессо, который отправляет команды "geo fix".
@Test
public void test_geofix() {
// ...throws exception
InstrumentationRegistry.getInstrumentation().
getUiAutomation().executeShellCommand("geo fix -70 40 3");
}
выдает это исключение (появляется в журнале, но перехватывается UIAutomation):
java.lang.RuntimeException: Error running shell command
at android.app.UiAutomationConnection$1.run(UiAutomationConnection.java:300)
Caused by: java.io.IOException: Cannot run program "geo": error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:983)
at java.lang.Runtime.exec(Runtime.java:691)
at java.lang.Runtime.exec(Runtime.java:524)
at java.lang.Runtime.exec(Runtime.java:421)
at android.app.UiAutomationConnection$1.run(UiAutomationConnection.java:286)
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
at java.lang.ProcessImpl.start(ProcessImpl.java:128)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:964)
at java.lang.Runtime.exec(Runtime.java:691)
at java.lang.Runtime.exec(Runtime.java:524)
at java.lang.Runtime.exec(Runtime.java:421)
at android.app.UiAutomationConnection$1.run(UiAutomationConnection.java:286)
Попытка добавления разрешения ACCESS_MOCK_LOCATION к тестируемому приложению (в отладочном манифесте), но при этом появилось «разрешение, предоставленное только системным приложениям».
Заранее спасибо.