android – 如何在向ActivityInstrumentationTestCase2测试发送触摸时修复INJECT_EVENT权限异常

android – 如何在向ActivityInstrumentationTestCase2测试发送触摸时修复INJECT_EVENT权限异常,第1张

概述虽然有很多例子表明这样的东西应该起作用,但是下面的代码失败了. 此代码存在于与实际项目关联的测试项目中. public class MyTest extends ActivityInstrumentationTestCase2<MyActivity> { public MyTest(String name) { super("com.mypackage.activ @H_404_2@ 虽然有很多例子表明这样的东西应该起作用,但是下面的代码失败了.
此代码存在于与实际项目关联的测试项目中.

public class MyTest extends ActivityInstrumentationTestCase2<MyActivity> {    public MyTest(String name)    {        super("com.mypackage.activitIEs",MyActivity.class);        setname(name);    }    public voID testTap() throws Throwable    {        //required by MotionEvent.obtain according to JavaDocs        long downTime = SystemClock.uptimeMillis();        long eventTime = SystemClock.uptimeMillis();        Instrumentation i = getInstrumentation();        //Setup the info needed for our down and up events to create a tap        MotionEvent downEvent = MotionEvent.obtain(downTime,eventTime,MotionEvent.ACTION_DOWN,300,20,0);        MotionEvent upEvent = MotionEvent.obtain(downTime,MotionEvent.ACTION_UP,0);        //Send the down/up tap event        i.sendPointerSync(downEvent);        i.sendPointerSync(upEvent);        //Delay to see the results        Thread.currentThread().sleep(3000);    }}

这引发了一个
    java.lang.SecurityException:注入另一个应用程序需要INJECT_EVENTS权限
在i.sendPointerSync()调用上.
我也尝试过vIEw.ontouchEvent(event)和vIEw.dispatchtouchEvent(event)但没有成功.

我唯一能想到的是,如果这个例子在正在测试的项目中有效.这看起来很糟糕,因为建议将测试分离到不同的项目,并能够从构建服务器运行它们,例如:

adb -e shell am instrument -w com.mypackage.activitIEs.test/androID.test.InstrumentationTestRunner
解决方法 这可能意味着您的主项目,测试项目或模拟器版本不同步. @H_404_2@ 总结

以上是内存溢出为你收集整理的android – 如何在向ActivityInstrumentationTestCase2测试发送触摸时修复INJECT_EVENT权限异常全部内容,希望文章能够帮你解决android – 如何在向ActivityInstrumentationTestCase2测试发送触摸时修复INJECT_EVENT权限异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1126566.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存