private static final String TAG = "TAG";
//定义广播标识
private static final String ACTION_USB_PERMISSION =
"com.android.example.USB_PERMISSION";
//注册接收广播 获取到usb 权限时系统广播
private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)) {
synchronized (this) {
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
if(device != null){
//成功
}
}
else {
Log.d(TAG, "permission denied for device " + device);
}
}
}
}
};
//获取service
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
//获取设备列表(一般只有一个,usb 口只有一个)
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
//绑定广播
PendingIntent mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
//注册接收广播
registerReceiver(mUsbReceiver, filter);
//枚举设备
while(deviceIterator.hasNext()){
UsbDevice device = deviceIterator.next();
//请求权限
manager.requestPermission(device, mPermissionIntent);
}