Android的USB设备权限和意图过滤器(Android USB Device Permissio

2019-07-21 02:38发布

我有一个Android应用程序,这将与USB设备交互时,在Android开发者官方文档,获得许可与设备进行通信 ,它说:

注意 :如果您的应用程序使用一个意图过滤器来发现USB设备,因为它们可以连接,它会自动在用户允许应用程序处理这个意图接收权限。 如果没有,你必须明确地在你的应用程序连接到设备之前请求允许。

意图过滤器是在AndroidManifest.xml中声明和使用资源文件,其中将包括厂商ID和产品ID。

如果我插入我的设备没有任何反应,即使有申报意向。 所以,我必须使用涉及明确要求准许同官方文档中提到的方法。

这工作,我可以与设备进行通信,但它发生用户拥有的每个应用程序启动时给予的权限,或者设备重新连接。 最终这将呈现消息给用户的每个设备被插入时请求确认和应用程序启动,并给予相同的权限,每次是不可取的。

因此,如果“......自动接收许可...”部分不能正常工作。

如何让我的意图过滤器的工作?
我在想什么?
我是否有任何其他的选择吗?


这个问题: Android的USB权限对话框永远不会出现了相反的问题,但解决的办法也不会为我工作。
:使应用程序的系统应用程序,绕过权限会为我无论是作为这里所说的不是工作,通过在Android的服务USB配件开放权限


任何帮助是极大的赞赏

Answer 1:

我有同样的问题,在使用该设备写这个活动的AndroidManifest.xml:

<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />

您还可以在XML资源来创建一个过滤器文件,如RES / XML / device_filter:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <usb-device vendor-id="26214" product-id="26214" />
    </resources>

这里的供应商ID和产品ID在小数给予 - 上面两个VID和PID是0x0123。 你看到的USB设备接入弹出supression?

你不能调用mManager.requestPermission(设备,mPermissionIntent),所以你必须直接调用mManager.openDevice(mDevice); 并且可以正常通讯,无需许可出现弹出式消息。

问候,塞缪尔Reque samo_reque@hotmail.com



Answer 2:

我不undersand你的问题很好,但我认为,解决办法是这样的..

<activity ...>
<intent-filter >
            <action android:name="android.intent.action.MAIN" />                
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
            <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
            <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter"/>
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>


文章来源: Android USB Device Permission and Intent Filter