当USB设备连接到Android平板电脑时,会出现一个弹出窗口,要求获得用户许可.我想压制这个,因为客户端不想要它.我该怎么办呢?
在代码中:
UsbManager.requestpermission();
Run Code Online (Sandbox Code Playgroud)
被调用以给USB设备临时访问.
这会弹出一个弹出窗口.默认情况下,如何禁止弹出窗口或授予用户访问权限?
有没有屏幕的安卓设备。连接 USB 设备时会自动出现系统对话框以允许使用 USB。必须在不使用设备屏幕的情况下获得许可。假设设备应用程序会提前安装,并在 USB 设备自动连接时。
如何做到这一点?
我正在为媒体盒创建一个 android 应用程序。盒子是有根的。我必须绕过权限(运行时权限),因为用户不会与设备交互。我也尝试将 apk 推送到system/priv-app文件夹中以使其成为系统应用程序。尽管如此,每当我的应用程序启动时,它都会请求权限。有没有办法绕过root设备中的权限?我使用以下命令将 APK 推送到 priv-app 文件夹。
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot
Run Code Online (Sandbox Code Playgroud)
应用程序似乎类似于系统应用程序,因为它现在不可卸载。但是权限问题依然存在。是否需要做任何额外的事情来授予所有权限?请帮忙。
我也尝试绕过 android usb 主机权限确认对话框,但这现在似乎是一个非常古老的故事。
在 Android 9 之前,我可以通过使用 root、系统化我的应用程序和使用下一个 USB 类来绕过 android usb 主机权限确认对话框/sf/answers/1076468291/ /sf/answers/1377729461/
但它不适用于最新的 Android 版本 - 9
它抛出 java.lang.NoSuchMethodError: No interface method grantDevicePermission(Landroid/hardware/usb/UsbDevice;I)V in class Landroid/hardware/usb/IUsbManager; or its super classes (declaration of 'android.hardware.usb.IUsbManager' appears in /system/framework/framework.jar)
fun setUsbPermissionRoot(device: UsbDevice) : Boolean {
if (BuildConfig.DEBUG) Log.i(TAG, "trying set permission")
try {
val pm = App.context.packageManager
val ai = pm.getApplicationInfo(App.context.packageName, 0)
ai?.let {
val b = ServiceManager.getService(Context.USB_SERVICE)
val service = IUsbManager.Stub.asInterface(b)
service.grantDevicePermission(device, it.uid)
try {
service.setDevicePackage(device, App.context.packageName, it.uid)
} catch (e: …Run Code Online (Sandbox Code Playgroud)