【发布时间】:2011-07-19 23:55:53
【问题描述】:
我正在尝试创建一个应用程序,该应用程序将在后台运行一项服务,该服务能够将触摸屏事件注入到正在运行的任何活动中。我可以通过调用Instrumentation.sendPointerSync(motionEvent); 将事件注入到属于我的应用程序一部分的活动中。但是,如果我尝试在没有运行应用程序的活动的情况下执行此操作,则会收到权限错误,提示我没有 INJECT_EVENTS 权限。我已将此权限添加到我的清单中,如下所示:<uses-permission android:name="android.permission.INJECT_EVENTS"></uses-permission> 它仍然抛出相同的权限异常。经过一番搜索,我得到了答案,为了获得 INJECT_EVENTS 权限,您的应用程序必须使用与系统签名相同的签名。但是我不清楚这到底意味着什么。我将不得不找到一个自定义 rom 构建它并使用与应用程序签名相同的签名对其进行签名。然后在我的设备上安装自定义 rom,然后安装我的应用程序,我就能正确注入触摸事件?如果是这种情况,我最好从一个已经放在一起的自定义 rom 开始,比如一个 from this page 或者这是我需要获取 android 项目的 git 副本并构建整个东西的情况我自己?无论哪种方式,有没有人知道你可以指点我的地方,让我朝着正确的方向努力以实现这一目标?
【问题讨论】:
-
您说得对,您需要将此应用程序烘焙到 ROM 中。注入事件是常规应用无法授予的系统权限。
-
正如我向其他人解释的那样......此权限不是常规类型,因此将其添加到清单中几乎没有效果。要使此权限生效,apk 必须使用系统证书进行签名。不适合普通开发者,只适合平台厂商
标签: android permissions rom