提问人:kishan verma 提问时间:3/24/2023 最后编辑:kishan verma 更新时间:3/27/2023 访问量:1774
Android INJECT_EVENTS权限 (Android 13)
Android INJECT_EVENTS permission (Android 13)
问:
我在尝试启动触摸事件时遇到问题
java.lang.SecurityException:注入输入事件需要调用方(或检测源,如果有)具有INJECT_EVENTS权限。
public static void injectEvent(MotionEvent e) {
Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendPointerSync(e); // getting exception here
}
尝试签名 APK
答:
0赞
Dinux
3/24/2023
#1
您需要在清单文件中添加INJECT_EVENTS权限才能对 apk 进行签名。将以下权限添加到清单文件:
<uses-permission android:name="android.permission.INJECT_EVENTS"/>
然后,您必须使用与系统签名相同的签名来签署您的apk。
您必须运行您的应用程序,以便它获得对权限的访问权限。为此,请在模拟器终端中运行以下命令:/system
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cp /sdcard/APP.apk /system/app
如果要使用 adb,请执行以下操作:
adb remount
adb shell cp /sdcard/APP.apk /system/app
要执行上述操作,您的设备需要扎根。什么是有根设备?
要根植您的设备:生根设备
评论
0赞
kishan verma
3/24/2023
已经添加,这不起作用。
1赞
Dinux
3/24/2023
您是否使用系统签名对 apk 进行了签名?
0赞
kishan verma
3/24/2023
如何做到这一点?你是要我做一个签名的apk吗?
0赞
Dinux
3/24/2023
系统签名位于目录<android-source-tree>/build/target/product/security。您可以使用它们通过系统权限对应用程序进行签名。
1赞
Dinux
3/27/2023
根据谷歌的说法,只有系统应用程序被授予INJECT_EVENTS权限。第三方应用无法使用此权限。因此,您必须使您的应用程序成为系统应用程序,为此您必须根植您的设备。
1赞
Dinux
3/30/2023
权限阅读链接中的“签名权限”和“特殊权限”部分。
评论