当前位置: 首页 > wzjs >正文

凡科网站做的作品如何发布常用的网络营销平台有哪些

凡科网站做的作品如何发布,常用的网络营销平台有哪些,九江建筑,河南建设工程信息网 建议访问中项网在 Android 上枚举 USB 设备除了使用 UsbManager.getDeviceList() 方法外,还有以下几种常见的方式: 1. 使用 USB 设备过滤器(XML 配置) 通过在 AndroidManifest.xml 中配置 USB 设备过滤器,可以让系统自动检测并通知…

在 Android 上枚举 USB 设备除了使用 UsbManager.getDeviceList() 方法外,还有以下几种常见的方式:

1. 使用 USB 设备过滤器(XML 配置)

通过在 AndroidManifest.xml 中配置 USB 设备过滤器,可以让系统自动检测并通知应用匹配的 USB 设备。

步骤:

  1. 创建 USB 设备过滤器 XML 文件(例如 res/xml/usb_device_filter.xml):
  1. <?xml version="1.0" encoding="utf-8"?>
    <resources><usb-device vendor-id="1234" product-id="5678" /> <!-- 指定具体 VID/PID --><!-- 或使用通配符匹配所有设备 --><!-- <usb-device /> -->
    </resources>
    
  2. 在 AndroidManifest.xml 中声明过滤器
  1. <activity android:name=".UsbDeviceActivity"><intent-filter><action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /></intent-filter><meta-dataandroid:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"android:resource="@xml/usb_device_filter" />
    </activity>
    
  2. 在 Activity 中处理 USB 设备连接
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent intent = getIntent();String action = intent.getAction();if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);if (device != null) {// 处理连接的 USB 设备}}
}

2. 使用广播接收器监听 USB 设备插拔事件

通过注册广播接收器,可以实时监听 USB 设备的插入和拔出事件。

示例代码:

// 注册广播接收器
private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);if (device != null) {// 处理新连接的 USB 设备}} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);if (device != null) {// 处理断开连接的 USB 设备}}}
};// 注册广播接收器
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(usbReceiver, filter);// 记得在 Activity 销毁时取消注册
@Override
protected void onDestroy() {super.onDestroy();unregisterReceiver(usbReceiver);
}

3. 使用 Android USB Host API(API 级别 12+)

通过 USB Host API,可以主动枚举和管理连接的 USB 设备。

示例代码:

UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();// 遍历设备列表
for (UsbDevice device : deviceList.values()) {Log.d(TAG, "Device: " + device.getProductId() + ", VID: " + device.getVendorId());// 请求设备权限PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_IMMUTABLE);usbManager.requestPermission(device, permissionIntent);
}

4. 使用 USB 设备类过滤

可以根据设备类(如 HID、CDC、MIDI 等)来过滤和枚举特定类型的 USB 设备。

示例代码:

for (UsbDevice device : deviceList.values()) {// 获取设备类int deviceClass = device.getDeviceClass();// 根据设备类过滤(例如,查找 HID 设备)if (deviceClass == UsbConstants.USB_CLASS_HID) {// 处理 HID 设备}
}

5. 使用 USB 设备接口过滤

通过检查设备的接口(Interface)和端点(Endpoint),可以进一步筛选出符合条件的 USB 设备。

示例代码:

for (UsbDevice device : deviceList.values()) {// 遍历设备的所有接口for (int i = 0; i < device.getInterfaceCount(); i++) {UsbInterface usbInterface = device.getInterface(i);// 根据接口类过滤(例如,查找串口设备)if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_CDC_DATA) {// 处理 CDC 数据接口}}
}

6. 使用 USB 设备权限管理

在访问 USB 设备前,需要获取用户权限:

private static final String ACTION_USB_PERMISSION = "com.example.USB_PERMISSION";// 请求权限
PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_IMMUTABLE);
usbManager.requestPermission(device, permissionIntent);// 处理权限回调
private final BroadcastReceiver permissionReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (ACTION_USB_PERMISSION.equals(action)) {synchronized (this) {UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {if (device != null) {// 权限已授予,可以访问设备}} else {Log.e(TAG, "USB 权限被拒绝");}}}}
};

总结

以上方法各有适用场景:

  • XML 过滤器:适合静态匹配特定 VID/PID 的设备。
  • 广播接收器:适合实时监听设备插拔事件。
  • USB Host API:适合主动枚举和管理设备。
  • 设备类 / 接口过滤:适合筛选特定类型的 USB 设备。

实际开发中,通常需要结合多种方法来实现完整的 USB 设备管理功能。

http://www.dtcms.com/wzjs/508161.html

相关文章:

  • 云主机网站源码百度快照和广告的区别
  • 西安做网站公司哪家行营销推广主要包括
  • 淮南网站推广云搜索神器
  • 建设部网站举报宁波网站推广
  • 专业网站搭建运营网站点击快速排名
  • 锤子 网站 模版青岛网站关键词优化公司
  • 深圳建站公司设计深业集团google网站入口
  • 你做的网站可视区域多少网络服务提供商
  • 网站给篡改了要怎么做如何自己创建网站
  • 做公司门户网站的重点外链兔
  • 做网站如何网站考虑优化企业网站优化关键词
  • 用什么做响应式网站线上推广策略
  • 马鞍山住房建设委员会网站搜索引擎营销的过程
  • 做网站哪里最好代发百度帖子包收录排名
  • 通过网站做外贸怎样做网站平台
  • 网站建设费用如何做账关键词查找网站
  • 一个网站建设需要什么nba最新排行
  • 西安市政府官方网站内容营销平台有哪些
  • 教科院网站建设网络服务主要包括
  • 铭坐网站建设网站关键词排名seo
  • 做网站需要用什么系统企业qq一年多少费用
  • 做爰试看的网站seo查询爱站网
  • 惠城区城乡规划建设局网站谷歌浏览器网页版入口
  • 网站建设需要会什么软件有哪些搜索引擎竞价排名
  • 网站在开发过程中如何做SEO好搜网
  • 韩国优秀网站欣赏游戏推广引流软件
  • app ui设计欣赏 网站天津百度推广中心
  • 深圳品牌网站开发网站关键词快速排名工具
  • 网页设计与网站建设课程总结推广方式都有哪些
  • 建设大型网站推广收费设计师经常用的网站