Articles of USB

使用`com.android.future.usb.accessory`库时,应用程序无法启动

我按照本指南在API 10上使用com.android.future.usb库。 我做了以下事情: 从SDK Manager安装了Google API 10: 选择Google API 10作为我的项目构建目标: 添加这些以manifest : ( 直接子) ( 孩子) (第一个activity孩子) 创建了res/xml/accessory_filter.xml如下所述。 这样做允许我使用com.android.future.usb及其子类。 但问题是manifest的更改后应用程序无法启动。 这是一个有根设备,该应用程序由操作系统配置为在设备启动时自动启动。 我应该做任何其他配置才能使这项工作? 也许应该在固件中做些什么? 编辑: 这是与usb有关的所有logcat: USB mass storage support is not enabled in the kernerl usb_configuration switch is not enabled in the kernerl Volume usb state changing -1 (Initializing) -> 0 (No-Media) Ignoring unknown switch […]

usb设备android,c#Xamarin

我最近开始写Xamarin,编写代码来查看连接到主机的设备时遇到了一些问题。 我已经阅读了SDK文档,所有文档都是用java编写的。 我正在尝试将java更改为C#,我将其编码为查找附加的设备: UsbManager manager = (UsbManager)GetSystemService (Context.UsbService); display.Text += ” /n inizializzo il manager”; display.Text += “numero dispositivi: “; display.Text += manager.DeviceList.Count; 使用“usb manager”应用程序,我可以看到所有usb附加,有3个。但是使用此代码它似乎是0 usb附加。 我不明白为什么。

Android 4.2.2 USB调试“始终允许从此计算机”选项导致设备的目标未知?

我选择“始终允许从这台计算机”后,我在连接我的4.2.2安卓设备与PC时遇到问题。 我在4.2.2 USB调试中选择了“始终允许来自这台电脑”,第一次工作正常,但是当我尝试其他时间时,我的设备总是处于脱机状态。 我尝试了另一个也是4.2.2的设备和USB调试popup窗口,当我点击确定(没有选择“始终允许从这台电脑”)时,设备列表变为在线状态。 我尝试了以下方法,但没有用 adb kill-server / adb start-server /和adb devices 安装新的eclipse,android SDK和ADT 插拔我的设备一千次 尝试重复此链接中的步骤 无论如何,一旦我选择了摆脱“始终允许从这台计算机”?

Android Studio 2.0未检测到USB设备

我尝试用我的手机玩Android Studio 2.0但没有成功,我做的是: 在我的手机中,应用程序/齿轮图标/设置/ SYSTEM / {}开发人员选项/ Android调试/,启用Android调试桥(adb)界面(设置勾号)。 用USB线将手机插入电脑后,我在电脑文件夹中find了A0001。 在A0001中,我可以看到手机中的文件。 在我的PC中,运行Android Studio / bin / studio.exe,“选择部署目标”窗口显示消息“未检测到USB设备或正在运行仿真器” 我尝试了两种不同的USB驱动程序但没有运气。 也许我应该告诉Android Studio我的USB驱动程序在哪里? 但是,怎么样? 你能帮我吗?

Android USB主机通讯

我正在开发一个利用Android 3.2中的USB Hostfunction的项目。 一般来说,我在USB /串行通信方面缺乏可观的知识和才能。 我也无法find任何我需要做的好示例代码。 我需要从USB通信设备读取。 例如:当我通过Putty(在我的电脑上)连接时,我输入: >GO 设备开始为我喷出数据。 俯仰/滚动/温度/校验。 例如: $R1.217P-0.986T26.3*60 $R1.217P-0.986T26.3*60 $R1.217P-0.987T26.3*61 $R1.217P-0.986T26.3*60 $R1.217P-0.985T26.3*63 我可以从Android设备发送初始的“GO”命令,此时我收到“GO”的回音。 然后在任何后续读取上没有别的。 我该怎么做:1)发送’go’命令。 2)读入结果数据流。 我正在使用的USB设备具有以下接口(端点)。 设备类别:通讯设备(0x2) 接口: 接口#0类:通信设备(0x2)端点#0方向:入站(0x80)types:中断(0x3)轮询间隔:255最大数据包大小:32属性:000000011 接口#1类:通信设备类(CDC)(0xa)端点#0地址:129编号:1方向:入站(0x80)types:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010 端点#1地址:2编号:2方向:出站(0x0)types:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010 我能够处理权限,连接到设备,find正确的接口并分配端点。 我只是想弄清楚使用哪种技术发送初始命令读取随后的数据。 我尝试了bulkTransfer和controlTransfer的不同组合而没有运气。 谢谢。 我正在使用界面#1,如下所示: public AcmDevice(UsbDeviceConnection usbDeviceConnection, UsbInterface usbInterface) { Preconditions.checkState(usbDeviceConnection.claimInterface(usbInterface, true)); this.usbDeviceConnection = usbDeviceConnection; UsbEndpoint epOut = null; UsbEndpoint epIn = null; // look for our […]

以编程方式连接和断开Android设备

我需要find一种方法(使用Android应用程序)以编程方式连接和断开Android设备与主机的连接。 我正在使用Galaxy Nexus。 我的目标是让所有内容尽可能接近库存,尽管我已经在内核中启用了详细的调试消息,并且为了查看它们已经在手机上启用root访问权限来访问/proc/kmsg (以及shell命令dmesg ) 。 我确信有一种方法可以利用root访问来完成我需要做的事情,但是我所有的尝试都导致了nix。 与/proc/bus/usb 与/dev/bus/usb 在MTP / PTP之间切换(无法以编程方式进行) 将Android USB小工具驱动程序转换为模块< – ??? 我将尝试弄清楚如何在列表中执行最后一个对象,因为我将能够rmmod并insmod在我的应用程序中生成的*.ko ,这将连接和断开手机。 我不确定这个选项的可行性。

在android上读取原始鼠标数据

在我的Android应用程序中,我通过USB-OTG从3DConnexion SpaceNavigator读取值来控制AR.Drone 。 现在我想用鼠标做同样的事情。 但是,Android正在抓取鼠标并显示鼠标光标。 当我使用鼠标的供应商和产品ID编写设备filter时,我不会像使用SpaceNavigator那样(strangely, both are HID — I get no cursor with the SpaceNavigator). 有没有办法在没有光标的情况下获取原始鼠标数据? 与Android股票完美搭配。 但我也会考虑改变ROM。

无法使用adb连接到LG手机(Mac OS X 10.7.5)

当我运行adb devices ,没有设备显示为已连接。 我的设备是LG Optimus Exceed 2,运行4.4.2这些post中有很多,所以这就是我所做的: 我正在使用手机附带的电源线。 它收费并尝试同步照片,所以这不是问题。 切换USB端口和尝试有源USB中心也不会影响它。 我已将供应商ID(0x1004)添加到〜/ .android / adb_usb.ini 重新启动并拔掉您能想到的任何组合 USB调试已开启。 并已重新启动。 与未知来源相同。 我从未使用过EasyTether,也没有安装在我的计算机上的任何地方。 更新了adb,更新了我的sdk。 重新启动的adb服务器 尝试安装LG的驱动程序: http : //www.lg.com/us/support-mobile/lg-VS450PP (他们说他们不支持Mac S / W升级,但是他们有一个要安装的软件包。没有帮助) 我有一台运行4.1的Nexus S,以及一台连接姜饼的旧LG手机。 那些已经与这个有建议的人一直在努力的巫师?

Android USB OTG:以编程方式关闭端口电源

假设我有一个USB供电的LED灯通过USB OTG适配器连接到运行Android 4.0.3的Toshiba Excite 10平板电脑,该平板电脑提供电源。 我想以编程方式从应用程序打开和关闭USB OTG主机端口的电源引脚。 (理想情况下没有root,但我会接受我能得到的)。 有任何想法吗?

关注Honeycomb或更高版本Android版本的外部USB存储器的更改

我有一台运行Android Honeycomb的数码单反相机和三星Galaxy Tab。 使用USB电缆将DSLR连接到平板电脑(通过USB套件在平板电脑上启用主机function)。 我希望在用户使用此外置摄像头拍照时收到通知,以便将此图像下载到平板电脑或使用它执行其他操作,例如显示包含从图像中获取的元信息的Toast通知。 至于我获得所有现有工具(如FileObserver使用底层inotify机制, MediaContentProvider等)允许监视更改,需要特定文件或文件系统路径进行监视。 这很好,直到我们在2.x和更早版本的Android版本中获得了块层协议支持 – 当你连接设备时,它已安装在设备文件系统的某个地方,你可以使用这个挂载点作为这些工具的观察点。 由于Honeycomb Google已经将使用PTP作为其子集的外部USB设备访问Media Transfer Protocol的方式改变了。 现在,当我将外部USB设备连接到Android设备时,我将看不到任何挂载点(我正在使用adb shell和后续的mount命令来获取它们)。 此外, MTP实现使用存储ID,它显然充当更高级别的抽象,并且只是普通的整数值。 我希望有一种方法能够以某种方式将这些存储ID转换为真正的路径/ mountpoint /无论如何,但显然似乎没有。 考虑到已经在我的设备上运行的Android MediaScanner ,我猜想当设备可以访问媒体文件的变化时,可以通过广播的特殊Intent来管理这个问题,所以我开始寻找已经存在且适合的Intents来获得通知,但没有运气 – 我发现只有ACTION_MEDIA_MOUNTED和ACTION_MEDIA_REMOVED才会在设备分别连接和断开时进行广播。 这意味着MediaScanner无法注意到设备上的任何更改,直到您重新安装它(我已使用库存图库应用程序对其进行了双重检查 – 在您拔下插头并将其插入Android之前,它不会在相机上看到任何新创建的图像设备再次)。 试图获取外部sdcard的这个挂载路径,我使用了Environment.getExternalStorageDirectory() API调用,但它产生了模拟的Galaxy的sdcard路径,即/mnt/sdcard ,而不是摄像机的路径。 所以它对我也不起作用。 我设法解决了这个问题,只是在AsyncTask充当TimerTask启动了定期的Timer事件。 此任务会初始化USB连接,打开设备,扫描整个设备内存,仅获取最后拍摄的照片,然后关闭设备描述符和USB连接。 它看起来不是最好和最有效的方式,考虑到它必须每次都做这些动作,这可能是经常发生的,比如说每5秒或10秒。 它肯定会很快耗尽电池并产生不必要的系统I / O,仅用于拍摄最后拍摄的照片并将其与之前拍摄的照片进行比较(99%它是相同的图像),但我还没有find任何更好的工作解决方案这样做。 拥有基于事件的通知的观察者机制会好得多。 所以我的问题是有更高效的方式来通知Honeycomb或更高版本的Android版本的外部USB存储器的更改而不是上面描述的那些?