bj0*_*bj0 5 usb android android-5.0-lollipop
我写了一个Android实用程序,使用android UsbHost API与USB上的一些自定义设备进行通信.这在4.4中工作正常,但在5.0中,一些设备缺少它们的接口(getInterfaceCount()== 0).
我一直在使用CM11的Galaxy Note 3上使用它们并且它们一直工作正常,但由于这个版本的CM不稳定,我试图升级到CM12.问题出现了,我认为它可能是一个CM错误,所以我尝试了一个简单的程序,在谷歌5.0版本的Nexus 5上枚举设备/接口,也存在问题.
我使用Button和TextView创建了一个简单的测试应用程序,其中OnClickListener设置为:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_usb);
Button button = (Button) findViewById(R.id.butt);
final TextView text = (TextView) findViewById(R.id.text);
final UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = "";
if( manager == null )
string += "no usb manager";
else {
for(UsbDevice device : manager.getDeviceList().values()) {
string += device.toString() + "\n";
string += String.format(" ifc: %d\n", device.getInterfaceCount());
}
}
text.setText(string);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这些设备连接到集线器,该集线器通过OTG电缆插入电话.当此代码在5.0上运行时,会列出设备,但列表中只有一个设备实际上具有接口(并且它并不总是相同的设备).但是,如果我使用ADB进入手机,我可以使用'cat/sys/kernel/debug/usb/devices'查看所有设备及其接口.
这是android 5.0中的一个错误,还是更改了usb api而我错过了什么?我无法在网上找到任何信息.
事实证明这是5.0引入的一个bug。Android 错误跟踪器存在一个问题:
所以从 5.0 开始就已经知道了,但目前谷歌还没有关于它的工作(甚至评论)。
| 归档时间: |
|
| 查看次数: |
1722 次 |
| 最近记录: |