我有一个辅助功能服务(IS)运行,以编程方式获取有关屏幕上当前显示的内容的信息。
现在我想设置一些UiAutomator测试用例。但是,如果我有运行UiAutomator的AS会出现以下错误:
INSTRUMENTATION_RESULT: shortMsg=java.lang.SecurityException
INSTRUMENTATION_RESULT: longMsg=Permission Denial: getIntentSender() from pid=9700, uid=2000, (need uid=1000) is not allowed to send as package android
我在网上搜索过,我发现很多人都遇到过这个问题但没有解决方法。
那么这是缺乏兼容性问题还是有办法解决它(或者至少是一种解决方法)?
注意:如果您对如何在没有AS的情况下阅读/访问屏幕内容有其他想法,我会全神贯注(在这种情况下更多的眼睛......)但我看了很多其他解决方案,这是我只有一个。
提前致谢。
如果您需要更多信息,请告诉我。
这是一个老问题,但我想我会回答自己说他们确实不相容。
我在这方面取得了一些成功:
val flags = UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
Configurator.getInstance().uiAutomationFlags = flags
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
这里有一些关于Configurator的更多细节:
https://developer.android.com/reference/androidx/test/uiautomator/Configurator.html
以下GitHub问题帮助我找到了这个: