相关文章推荐

问题描述:

app中用到外接usb 设备,但是其他应用也是用到了usb,那么就存在一个问题,当别的应用先通过授权的方式获取到usb 权限,并且申请了独占模式,别的应用就无法再通过usb 传输数据,即使你已经通过了usb 获取到权限,并且可以正常的获取到

UsbDevice 设备,并且通过openDevice获取到UsbDeviceConnection,也可以获取到设备id.但是就是无法读写数据.

这是我的正常操作:

UsbDevice device = (UsbDevice) intent.getParcelableExtra (UsbManager.EXTRA_DEVICE);
UsbManager usbManager= (UsbManager) getSystemService (Context.USB_SERVICE);
UsbDeviceConnection connection = usbManager.openDevice (device);

独占模式:

connection.claimInterface (device.getInterface (0),true);
connection.releaseInterface (device.getInterface (0));

当设置这两个参数后表示启动了独占模式,claimInterface 方法是告诉linux 断开这个端口的设备,releaseInterface 是启动这个端口独占模式.

可以参考android api 文档的解释: http://www.android-doc.com/reference/android/hardware/usb/UsbDeviceConnection.html#claimInterface(android.hardware.usb.UsbInterface,%20boolean)

解决问题:

在获取到UsbDeviceConnection 后通过设置

connection.claimInterface (device.getInterface (0),true);

connection.releaseInterface (device.getInterface (0));

独占模式,可以解决usb 被占用的问题,当然别的设备也可以通过这种方式,重新获取到设备.

问题描述: app中用到外接usb 设备,但是其他应用也是用到了usb,那么就存在一个问题,当别的应用先通过授权的方式获取到usb 权限,并且申请了独占模式,别的应用就无法再通过usb 传输数据,即使你已经通过了usb 获取到权限,并且可以正常的获取到UsbDevice 设备,并且通过openDevice获取到UsbDeviceConnection,也可以获取到设备id.但是就是无法读写数据.这是我的正常操作:UsbDevice device = (UsbDev...     m Usb DeviceConnection.claimInterface(intf, forceClaim); 2.调用的是本地方法在 android_hardware_ Usb DeviceConnection.cpp static jboolean android_hardware_ Usb DeviceConnection_cla... 拔出U盘文件管理器会被系统杀死: 04-01 11:30:47.252 1855-1894/system_process I/ActivityManager: Killing 11673:com.kangdexin.kdxfilemanager/1000 (adj 0): stop com.xxx.filemanager 04-01 11:31:25.736 1343-1352/? W/... USB 主机概览 当您的 Android 设备处于 USB 主机 模式 时,它会充当 USB 主机,为总线供电并枚举连接的 USB 设备。Android 3.1 及更高版本支持 USB 主机 模式 。 API 概览 在开始前,请务必了解您需要 使用 的类。下表介绍了...
Android usb 通信一、前言二、开始1、AndroidManifest.xml清单文件2、创建权限广播接收者3、枚举 usb 设备4、获取 usb 接口以及输入/输出端点 最近在学习android的 usb 开发,写了一个android手机和arduino开发板通信的Demo。和其他开发板或设备进行 usb 通信,原理都是一样的。 写篇博客 记录 一下。 按照惯例,先看效果图: 最后一张图是我用到的arduino设备和用于连接手机的数据线,需要一个 usb 转tc的转接头才能插到手机上 1、Androi
安卓新人,在做一个通过安卓手机 USB 接口控制外部设备的项目。 开始就没有办法调试,因为 USB 接口被设备 占用 了, 只能用文本一次一次的把状态显示在主界面上,相当费劲,而且时不时程序就崩溃。基本没有办法对程序进行一个整体的调试。 今天突然看到这篇文章: http://blog.csdn.net/easy41/article/details/62046787 决定试一试, 用模拟器试试能不能成
<activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> </activity> 2. 在MainActivity.java文件中添加以下代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); 以上代码将隐藏标题栏并使应用程序占据整个屏幕。请注意,在不同的Android版本和设备上,可能需要 使用 不同的主题和标志来实现全屏 模式
 
推荐文章