Android USB自动授予权限

Android USB自动授予权限,第1张

概述无论如何都要访问IUsbManager接口类来调用service.grantDevicePermission()方法来自动设置USB设备的权限,而不必总是让ConfirmationActivity询问用户?谢谢解决方法:当然是的!你可以使用这段代码,为我工作:publicbooleangrantAutomaticPermission(UsbDeviceusbDevice){try

无论如何都要访问IUsbManager接口类来调用service.grantDevicePermission()方法来自动设置USB设备的权限,而不必总是让ConfirmationActivity询问用户?

谢谢

解决方法:

当然是的!你可以使用这段代码,为我工作:

public boolean grantautomaticPermission(UsbDevice usbDevice) {    try    {     Context context=YourActivityOrApplication;     PackageManager pkgManager=context.getPackageManager();     ApplicationInfo     appInfo=pkgManager.getApplicationInfo(context.getPackagename(), PackageManager.GET_Meta_DATA);     Class serviceManagerClass=Class.forname("androID.os.ServiceManager");     Method getServiceMethod=serviceManagerClass.getDeclaredMethod("getService",String.class);     getServiceMethod.setAccessible(true);     androID.os.IBinder binder=(androID.os.IBinder)getServiceMethod.invoke(null, Context.USB_SERVICE);     Class iUsbManagerClass=Class.forname("androID.harDWare.usb.IUsbManager");     Class stubClass=Class.forname("androID.harDWare.usb.IUsbManager$Stub");     Method asInterfaceMethod=stubClass.getDeclaredMethod("asInterface", androID.os.IBinder.class);     asInterfaceMethod.setAccessible(true);     Object iUsbManager=asInterfaceMethod.invoke(null, binder);     System.out.println("UID : " + appInfo.uID + " " + appInfo.processname + " " + appInfo.permission);     final Method grantDevicePermissionMethod = iUsbManagerClass.getDeclaredMethod("grantDevicePermission", UsbDevice.class,int.class);     grantDevicePermissionMethod.setAccessible(true);     grantDevicePermissionMethod.invoke(iUsbManager, usbDevice,appInfo.uID);     System.out.println("Method OK : " + binder + "  " + iUsbManager);     return true;    }    catch(Exception e)    {     System.err.println("Error trying to assing automatic usb permission : ");     e.printstacktrace();     return false;    } }

我所做的是实现androID使用反射这样做的方式.要使用此代码,您必须具有:

<uses-permission androID:name="androID.permission.MANAGE_USB"/>

但是有一个问题,我不确切地说,如果我错了,请纠正我:USER拥有权限,而不是应用程序,然后如果您尝试从应用程序仪表板启动应用程序,您将失败.有必要确保比androID开始你的应用程序,例如,将其设置为启动器并让它以HOME意图开始.

问候,期待可以帮助别人.

总结

以上是内存溢出为你收集整理的Android USB自动授予权限全部内容,希望文章能够帮你解决Android USB自动授予权限所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1100014.html

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

发表评论

登录后才能评论

评论列表(0条)

保存