相关疑难解决方法(0)

Android USB主机和隐藏设备

我正在开发一个Android应用程序,我必须在其中与USB设备进行通信.我尝试在我的应用中使用标准谷歌API,但设备列表总是空的.

如果我使用谷歌API的USB设备信息相同的事情.google api搜索到的设备列表为空,

lsusb给出以下结果:

Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 002: ID 2226:0014
Run Code Online (Sandbox Code Playgroud)

我的设备是2226:0014

日食日志:

I/USB3G(92): event { 'add', '/devices/platform/sw-ehci.1/usb2/2-1', 'usb', '', 189, 133 }
I/USB3G(92): path : '/sys/devices/platform/sw-ehci.1/usb2/2-1'
I/USB3G(92): VID :size 5,vid_path '/sys/devices/platform/sw-ehci.1/usb2/2-1/idVendor',VID  '2226
I/USB3G(92): '.
I/USB3G(92): PID :size 5,Pid_path '/sys/devices/platform/sw-ehci.1/usb2/2-1/idProduct',PID  '0014
I/USB3G(92): '.
I/USB3G(92): cmd=/system/etc/usb_modeswitch.sh /system/etc/usb_modeswitch.d/2226_0014 &,
I/USB3G(92): excute ret : 0,err:No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我插入像rs232适配器,蓝牙加密狗这样的设备,没有任何反应,API和lsusb没有任何结果.

设备的Prtocol基于ezusb库.Android v.:4.0.3内核版本:3.0.8固件版本:crane_evb-eng 4.0.3 IMLK74k 20120330

有没有办法通过API访问隐藏的USB设备,还是应该通过编写驱动程序并将其修补到固件来实现对该设备的支持? …

api usb android host

24
推荐指数
2
解决办法
9万
查看次数

三星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 USB调试模式下,能否在USB调试时将计算机键盘作为手机的输入设备?

我喜欢在Android上进行USB调试,因为它比仿真器快。我知道我可以在仿真器中使用键盘,但是在调试时,我想使用计算机键盘(插入计算机)代替设备键盘,以使输入速度更快。那可能吗?

android android-emulator

3
推荐指数
2
解决办法
6317
查看次数

标签 统计

android ×3

host ×2

usb ×2

android-emulator ×1

api ×1

galaxy-tab ×1