Android usb 权限广播,[Android]USB开发

第一:请求权限和请求权限回调(通过广播回调)

注册一个广播接收器用于接收USB权限被同意或拒绝后发出的广播

//注册USB设备权限管理广播

IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); //ACTION_USB_PERMISSION为自定义的字符串

context.registerReceiver(usbReceiver, filter);

其中usbReceiver的实现是:

private BroadcastReceiver usbReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

final String action = intent.getAction();

if(action.equals(ACTION_USB_PERMISSION)){//ACTION_USB_PERMISSION是前面我们自己自定义的字符串

UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);

if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {

if (device != null) {

LogUtils.i("已获取USB权限");

}

} else {

LogUtils.i("USB权限被拒绝");

}

};

请求权限:

PendingIntent mPermissionIntent = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);//关于这个mPermissionIntent ,具体的作用我还没弄明白,明白以后补充

manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);

manager.requestPermission(device,mPermissionIntent);//device是具体某个usb设备

执行完这个后,界面会弹出对话框询问用户是否授予权限,然后会发送权限广播,所以上面我们注册一个广播接收器来判断权限状态

第二:注册USB设备插拔广播

USB设备被插/拔后同样会发送一个广播,因此我们需要注册一个接收器来接收这个广播

IntentFilter stateFilter = new IntentFilter();

stateFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);

stateFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);

context.registerReceiver(usbStateReceiver, stateFilter);

其中.usbStateReceiver的实现如下:

private BroadcastReceiver usbStateReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

//USB连接上手机时会发送广播android.hardware.u

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值