小编hin*_*ecw的帖子

三星Galaxy 10.1平板电脑的Android Usb主机问题

我正在尝试利用Samsung Galaxy Tablet上的USB主机功能.我从三星购买了附件加密狗(http://www.samsung.com/us/mobile/galaxy-tab-accessories/EPL-1PL0BEGSTA).当我第一次通过这个加密狗连接USB设备时,我从Galaxy平板电脑出现了高功率错误 - 仅供参考使用外部供电的USB集线器,您可以使用它.

现在,当我连接时,设备本身正在确认USB外围设备的存在,我尝试使用Android的android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager; 图书馆.我看到有两种方法可以识别USB设备,注册广播接收器来监听通过的意图

IntentFilter usbIntentFilter = new IntentFilter();
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED");          
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_DETACHED"); 
registerReceiver(mUsbReceiver,usbIntentFilter);
Run Code Online (Sandbox Code Playgroud)

当我连接任何设备时,这并没有触发任何意图,奇怪......好吧.所以我继续尝试下一个方法:通过UsbManager显式查询设备列表 - 这完成如下:

HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
    int count = deviceList.size();
    Iterator<UsbDevice> iterator = deviceList.values().iterator();

    if(iterator.hasNext()){
    UsbDevice deviceVal = iterator.next();
    testTxtView1.setText("set device " + deviceVal); 
    }
Run Code Online (Sandbox Code Playgroud)

这可能会占用当前连接的USB设备(当前每个Google文档支持的USB设备).为了测试这个,我会在按下按钮时调用上面的代码并显示设备结果.出于某种原因,我每次都从设备列表中获取设备,无论是否连接了USB加密狗.此外,无论USB加密狗(或没有加密狗加密狗),该设备每次都是相同的.输出如下:

device usbDevice [mName =/dev/bus/usb/001/002,mVendorId = 1256,mProductId = 27033,mClass = 0,mSubClass = 0,mProtocol = 0,mInterfaces = [Landroid.os.Parcelable; @ 406ff4d8]

^^ @ 406ff4d8值每次查询此代码时都会更改(我只是将它的一个实例放了)

我到处搜索过,无法找到任何可能适用于我的情况的类似问题或解决方案.我已经尝试实现谷歌的USB示例(这正是我的本质,我扯掉了他们的)并且遇到了这些问题.

我还应该提一下我的清单的构成:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="edu.mit.ll.drm4000"
  android:versionCode="1"
  android:versionName="1.0">
<uses-feature android:name="android.hardware.usb.host" …
Run Code Online (Sandbox Code Playgroud)

usb android host galaxy-tab

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

galaxy-tab ×1

host ×1

usb ×1