问题描述:
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版本和设备上,可能需要
使用
不同的主题和标志来实现全屏
模式
。