我使用"adb devices"获得以下结果.只有一台设备通过USB连接到PC,但我们得到8行结果.
有人能说出原因吗?
WH96TNE00361 offline
WH96TNE00361 offline
WH96TNE00361 offline
WH96TNE00361 offline
WH96TNE00361 offline
WH96TNE00361 offline
WH96TNE00361 offline
WH96TNE00361 offline
Run Code Online (Sandbox Code Playgroud) 我正在尝试从连接到主机模式的Android手机的USB设备中获取一些数据.我能够向它发送数据,但读取失败.
我已经看了几个 例子,尽我所能,但我没有任何USB通信经验,虽然现在我知道了一点,而且我已经坚持了这个,我不得不承认.
我对端点配置不太熟悉,但我知道我的设备使用CDC类型的通信方法,并且输出(从电话到设备)和输入都被注册.
这是使用连接到手机的唯一设备来管理USB连接的整个班级,它没有以任何方式完成,但我希望在我继续前进之前让阅读部分工作.
public class UsbCommunicationManager
{
static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
UsbManager usbManager;
UsbDevice usbDevice;
UsbInterface intf = null;
UsbEndpoint input, output;
UsbDeviceConnection connection;
PendingIntent permissionIntent;
Context context;
byte[] readBytes = new byte[64];
public UsbCommunicationManager(Context context)
{
this.context = context;
usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
// ask permission from user to use the usb device
permissionIntent = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
context.registerReceiver(usbReceiver, filter);
}
public void connect()
{
// …Run Code Online (Sandbox Code Playgroud) 我遇到了通过USB调试Android ADB的问题.
使用Macbook Air 2013并尝试连接Nexus 6开发电话.
在MAC Android Studio上安装了android最新的sdk.
当我做
adb kill-server
adb devices
Run Code Online (Sandbox Code Playgroud)
我明白了:
adb I 661 9881 usb_osx.cpp:259] Found vid=18d1 pid=**** serial=*****
adb I 661 9881 usb_osx.cpp:259]
adb E 661 9881 usb_osx.cpp:331] Could not open interface: e00002c5
adb E 661 9881 usb_osx.cpp:265] Could not find device interface
Run Code Online (Sandbox Code Playgroud)
因此,它发现设备,供应商ID,产品ID和串行匹配我在Nexus 6的系统信息中找到的内容.
我在网上找到以下建议后尝试了 - 但没有成功 - 以下解决方法:
在电话上禁用和重新启用调试模式,还可以在USB配置之间切换充电,MTP,PTP,RNDIS,音频源,MIDI,始终确保对Mac的RSA指纹进行授权
关闭Android Studio/DDMS,通过'kill-server'命令杀死adb以及通过Apple活动监视器终止进程
以root身份运行adb
重启Mac几次
重新启动Nexus 6
完全重新安装Android SDK
与其它调试启用Android设备尝试(三星Galaxy Tab,这里还发现了亚行正确的设备信息,但不能访问与同样的错误接口)
尝试使用3种不同的USB电缆,所有电缆最初都附带Android设备
通过谷歌,我了解到错误代码e00002c5意味着该设备已被其他驱动程序使用.
我最近安装了Sophos Home Antivir.认为这可能会阻止ADB打开设备界面,我使用提供的卸载程序完全卸载了Sophos并重新启动了Mac.
任何提示都表示赞赏:
要解决哪些步骤?
因为e00002c5似乎是另一个驱动程序正在使用该设备的明确指示,如何找出哪个进程以及如何阻止它执行该操作
我正在考虑一个Android应用程序(可能还有一个附带的物理设备),我正在试图弄清楚这是否可行.
1)假设我将Android插入PC.PC上安装的应用程序是否可以与手机中运行的应用程序通信?我只需要一个非常简单的数据交换,它甚至可以是单向的(只需将数据从手机推送到PC上的监听应用程序,无论何时手机需要,我都不需要从PC发送到手机的任何数据).
当我插上它时,手机给了我4个选项(充电,磁盘驱动器,HTC同步,网络共享),这让我觉得这不可行,但仍然值得一试.
2)PC上的应用程序是否可以通过任何其他方式与手机上的应用程序通信?(Wi-Fi,蓝牙等).我猜wi-fi没有,因为任何一方都没有对方的IP(我希望这只是工作,而不是一直手动输入IP).
3)如果我将一个设备插入手机底部的小USB端口(让我们说这是一个可以做任何事情的神奇设备,只要它可行,我就不太关心这些细节).我可以让Android应用与该设备通话吗?
4)让手机与我制作的"设备"或PC上的应用程序通话的任何其他想法都非常受欢迎."通过网络"可能是一个选择(虽然必须有一个我作为中间人拥有的中央服务器,我相信).但我更喜欢这两种设备之间的通信是直接的.
我有一个USB设备从系统读取数据并将它们传输到计算机.我想知道是否可以使用Linux单板PC(即Raspberry Pi)运行脚本并成为我的USB设备的远程服务器,我可以通过SSH或FTP连接到"远程服务器"(Linux)或其他协议(通过Internet)并将该USB端口安装到我的计算机上.任何软件都会这样做,你知道终端服务如何连接远程资源,我需要相同的,但最好是在Linux板上.
我的系统是Windows 7,因此我需要将远程USB安装为"本地端口",以便软件认为它在本地进行通信,并且它会找到读者.
如果您的shell脚本可以帮助您在完成其工作后安全地删除闪存盘,那将会很酷.在发布问题之前我做了很多功课,要求提供一个有望满足以下需求的解决方案:
/media/A与许多其他闪存盘一起安装,代码可以选择性地移除/media/A而不会干扰其他磁盘.例如,我可以/media/A作为参数传递.hdparm除了他们的文件之外的一些命令很难阅读.如果有人能给我一个解决方案,我希望他/她也可以提供参数的解释等.是否有任何用于Windows 7(64位)的软件驱动程序可以报告在某些应用程序软件和USB设备之间传输的数据?
我试过snoopy(http://sourceforge.net/projects/usbsnoop/),但我无法让它工作.可能我需要沿着安装早期版本的Windows的路线走下去.
还有其他建议吗?
当USB设备连接到Android平板电脑时,会出现一个弹出窗口,要求获得用户许可.我想压制这个,因为客户端不想要它.我该怎么办呢?
在代码中:
UsbManager.requestpermission();
Run Code Online (Sandbox Code Playgroud)
被调用以给USB设备临时访问.
这会弹出一个弹出窗口.默认情况下,如何禁止弹出窗口或授予用户访问权限?
我正在尝试使用Snow Leopard上的Java Sound录制/处理来自三个usb麦克风的一些音频(但如果修复了某些内容,可以切换到Windows).问题是,当我尝试使用与usb麦克风相对应的混音器时,Java Sound告诉我该行不受支持.具体来说,它说...
可用的搅拌机:
Java声音音频引擎
USBMIC Serial#041270067
内置输入内置麦克风
Soundflower(2ch)
Soundflower(16ch)
线程"AWT-EventQueue-0"中的异常java.lang.IllegalArgumentException:Line unsupported:interface TargetDataLine支持格式PCM_SIGNED 96000.0 Hz,8位,立体声,2字节/帧,
...当我要求它选择USBMIC调音台时:
Mixer mixer = AudioSystem.
getMixer(mixerInfo[1]);
Run Code Online (Sandbox Code Playgroud)
我已经尝试将音频格式与麦克风(16位,44100Hz,立体声)的确切规格相匹配,但没有任何区别.
问题出在这里:
final TargetDataLine line = (TargetDataLine)
mixer.getLine(info);
Run Code Online (Sandbox Code Playgroud)
似乎混音器和TargetDataLine彼此不喜欢.有没有办法让这两个人"匹配"并相处?
我正在使用的麦克风确实有点奇怪.它们被用于名为SingStar的卡拉OK视频游戏中.麦克风本身具有标准的单声道输入连接器,插入一个小集线器(两个到集线器),将它们转换为单个公头usb连接器.但是,除了陌生之外,它们似乎与Audacity一起作为单独的频道完美地工作,所以用它们进行多声道录音显然是可能的,也许不是用Java.
我还考虑使用像Soundflower这样的程序,在不同程序之间共享音频.但是,我不确定这是否会起作用,因为我无法看到如何将USB麦克风输入到Soundflower,然后将它们传输到Java中.一个快速的实验告诉我,我可以从麦克风中录制Audacity中的音频,通过Soundflower将其输出,然后在我的Java程序中处理.不过,我想要做的就是让它全部用Java实现.
有人熟悉这类问题吗?
使用.Net(C#),如何使用USB设备?
如何检测USB事件(连接/断开连接)以及如何与设备通信(读/写).
是否有本地.Net解决方案来执行此操作?