android–USB设备访问d出抑制?

android–USB设备访问d出抑制?,第1张

概述当USB设备连接到Android平板电脑时,会出现一个d出窗口,要求获得用户许可.我想压制这个,因为客户端不想要它.我该怎么办呢?在代码中:UsbManager.requestpermission();被调用以给USB设备临时访问.这会d出一个d出窗口.默认情况下,如何禁止d出窗口或授予用户访问权限?解决方法:

当USB设备连接到Android平板电脑时,会出现一个d出窗口,要求获得用户许可.我想压制这个,因为客户端不想要它.我该怎么办呢?

在代码中:

UsbManager.requestpermission(); 

被调用以给USB设备临时访问.

这会d出一个d出窗口.默认情况下,如何禁止d出窗口或授予用户访问权限?

解决方法:

当您在应用程序内请求权限时,似乎“默认使用此USB设备”复选框不执行任何 *** 作(我不确定为什么此复选框甚至会显示在此d出窗口中.

相反,您应该在清单中为您的活动注册一个意图处理程序:

<activity     ...    ...    >    <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/usb_device_filter" />  </activity>

您还必须在xml资源中创建一个过滤器文件,例如res / xml / usb_device_filter:

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

这里的vendor-ID和product-ID必须以十进制给出 – 在VID和PID之上都是0x6666.

我上面给出的也适用于USB配件(即配件是USB主机,而androID是设备) – 在这种情况下,意图过滤器应该注册

<action androID:name="androID.harDWare.usb.action.USB_ACCESSORY_ATTACHED" />

并且您还必须以完全相同的方式包含元数据过滤器.

请参阅http://developer.android.com/guide/topics/connectivity/usb/accessory.html并搜索“使用意图过滤器”部分.

编辑

总而言之 – 如果您针对您的活动注册了intent-filter,则在连接USB设备/配件时将立即显示USB权限窗口.如果用户选中“默认使用此USB设备”框并授予权限,则会记住这一点,并且不再显示权限对话框(除非卸载应用程序或用户从应用程序管理器清除默认 *** 作) ).

我在这里放了一个小巧,可怕的工作示例项目:

http://www.locusia.com/examples/permissionTest.zip

您需要编辑res / xml / usb_device_filter.xml,否则这应该允许您非常快速地测试它.

对于服务……

似乎服务无法接收USB意图.我通过制作隐藏的活动来解决这个问题,然后重新广播意图.

我在我的清单中定义它如下:

<activity    androID:name=".activitIEs.UsbEventReceiverActivity"    androID:label="YOUR APPliCATION name - This appears in the permission popup"    androID:theme="@style/theme.transparent"     androID:noHistory="true"    androID:excludeFromrecents="true"    androID:taskAffinity="com.example.taskAffinityUsbEventReceiver"    androID:process=":UsbEventReceiverActivityProcess"    androID:exported="false"    >        <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/usb_device_filter" />  </activity>

(我的服务中有一个复杂的任务/流程布局,该区域的YMMV).

我定义了这样的活动:

public class UsbEventReceiverActivity extends Activity{       public static final String ACTION_USB_DEVICE_ATTACHED = "com.example.ACTION_USB_DEVICE_ATTACHED";    @OverrIDe    protected voID onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);    }    @OverrIDe    protected voID onResume()    {        super.onResume();        Intent intent = getIntent();        if (intent != null)        {            if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED))            {                Parcelable usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);                // Create a new intent and put the usb device in as an extra                Intent broadcastIntent = new Intent(ACTION_USB_DEVICE_ATTACHED);                broadcastIntent.putExtra(UsbManager.EXTRA_DEVICE, usbDevice);                // broadcast this event so we can receive it                sendbroadcast(broadcastIntent);            }        }        // Close the activity        finish();    }}

最后一块拼图,透明主题(我不确定,但你可以使用内置的androID半透明主题) – res / values / styles.xml:

<?xml version="1.0" enCoding="utf-8"?>      <resources>      <style name="theme.transparent" parent="androID:theme">        <item name="androID:windowIsTranslucent">true</item>        <item name="androID:windowBackground">@androID:color/transparent</item>        <item name="androID:windowContentOverlay">@null</item>        <item name="androID:windowNoTitle">true</item>        <item name="androID:windowIsfloating">true</item>        <item name="androID:backgroundDimEnabled">false</item>        <item name="androID:windowAnimationStyle">@null</item>    </style>  </resources>  
总结

以上是内存溢出为你收集整理的android – USB设备访问d出抑制?全部内容,希望文章能够帮你解决android – USB设备访问d出抑制?所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1104052.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存