- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试创建一个应用程序,该应用程序将在后台运行一项服务,该服务能够将触摸屏事件注入(inject)到正在运行的任何 Activity 中。我可以通过调用 Instrumentation.sendPointerSync(motionEvent);
将事件注入(inject)到属于我的应用程序一部分的 Activity 中。但是,如果我在没有运行应用程序的 Activity 的情况下尝试执行此操作,我会收到一个权限错误,指出我没有 INJECT_EVENTS 权限。我已将此权限添加到我的 list 中,如下所示:<uses-permission android:name="android.permission.INJECT_EVENTS"></uses-permission>
它仍然抛出相同的权限异常。经过一番搜索,我得到了答案,为了获得 INJECT_EVENTS 权限,您的应用程序必须使用与系统签名相同的签名。但是我不清楚这到底意味着什么。我将不得不找到一个自定义 rom 构建它并使用与应用程序签名相同的签名对其进行签名。然后在我的设备上安装自定义 rom,然后安装我的应用程序,我就可以正确注入(inject)触摸事件了?如果是这种情况,我最好从一个已经放在一起的自定义 rom 开始,比如一个 from this page还是我需要获取 android 项目的 git 副本并构建整个 myslef 的情况?无论哪种方式,有没有人知道你可以指出一个地方,让我朝着正确的方向努力以实现这一目标?
最佳答案
要将事件注入(inject)到一个单独的进程中,需要将您的应用程序安装到/system/app 并使用签名您的 APK系统证书。
<uses-permission android:name="android.permission.INJECT_EVENTS"/>
这需要您拥有 AOSP 源才能使用用于构建在手机上运行的系统的 google key 构建 keystore 。
鉴于您有一个 AOSP 目录,@Eli 出色地展示了如何使用名为“keytool-importkeypair”的漂亮脚本构建 keystore
以 IntelliJ 为例,从 Build 菜单中选择 Generate Signed APK..。找到上面创建的 keystore ,输入给定的密码(例如,android),如果需要,为 key 提供相同的密码。请注意,签名的 apk 被写入项目根目录 (!) 而不是典型位置 (./out/production//)。
adb root
adb remount
adb push MyApp.apk /system/app
“安装”会自动进行。但是请注意,与正常的应用安装过程不同,您的 APK 中的任何 native 库不会复制到/system/lib/。如果您使用 NDK 构建和调用您自己的本地库,则需要手动执行此操作。
关于Android INJECT_EVENTS 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383401/
使用 INJECT_EVENTS 的正确方法是什么。我尝试使用此 Instrumentation.sendPointerSync(motionEvent) 并尝试将事件注入(inject)其他应用程序
我正在尝试创建一个应用程序,该应用程序将在后台运行一项服务,该服务能够将触摸屏事件注入(inject)到正在运行的任何 Activity 中。我可以通过调用 Instrumentation.sendP
我正在尝试在我的应用程序中实现一种 vnc(基于 oNaiPs 的 droid-vnc-server)。由于鼠标事件不适用于我的设备,我正在尝试以下操作:从 native vnc 帧缓冲服务器发送数据
我设计了2个应用, 1) 这是一个服务并且在后台中运行。 2) 在前台运行,只有一个 EditText。现在,我想使用该服务将一些值插入到 EditText 中。在我发现的日志中,错误 not all
我知道这不是关于此权限的第一个线程,但是其他线程尚未完成或对我没有帮助。 我需要的是使用 Instrumentation 来扩充 KeyEvents。这很好用,而且比 shell(“input key
虽然有许多示例表明类似这样的方法应该有效,但以下代码失败了。此代码位于与真实项目关联的测试项目中。 public class MyTest extends ActivityInstrumentatio
当启动 MediaStore.ACTION_VIDEO_CAPTURE 时,我正在尝试模拟点击录制按钮。我的目标是让应用程序在启动 Intent 时立即开始记录。但是当我运行我的代码时,我得到以下内容
Action 'press_key' unsuccessful: java.lang.SecurityException: Injecting to another application requi
使用 com.bitbar.recorder.extensions.ExtSolo 测试长按屏幕和 View 返回 java.lang.SecurityException。 View v = find
在我的代码中有 HomeActivity.java。在此 Activity 中,我有 3 个图像按钮,当我单击任何按钮时,它会打开一个带有 intent.putExtra 的新 Activity (I
返回错误:java.lang.SecurityException:在 appium 中使用 touchaction 类时注入(inject)到另一个应用程序需要 INJECT_EVENTS 权限 tr
当我尝试运行一些 Android 单元测试时,我不断遇到 junit.framework.AssertionFailedError: Click at (160.0, 120.0) can not b
我是一名优秀的程序员,十分优秀!