广播监听USB和外设插拔状态
2017-07-20 14:55
656 查看
直入正题,看代码
//USB插入监听 添加广播过滤意图 IntentFilter filter = new IntentFilter(); filter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED"); filter.addAction("android.hardware.usb.action.USB_DEVICE_DETACHED"); filter.addAction("android.hardware.usb.action.USB_STATE"); registerReceiver(mUsbBroadcastReceiver, filter);
//BOOLEAN为成员变量,自己随便起一个就行 BroadcastReceiver mUsbBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); //判断外设 if (action.equals("android.hardware.usb.action.USB_DEVICE_ATTACHED")) {//外设已经连接 mIvUsb.setVisibility(View.VISIBLE); } if (action.equals("android.hardware.usb.action.USB_DEVICE_DETACHED")) { if (BOOLEAN) {//外设已经移除 mIvUsb.setVisibility(View.GONE); } } //判断存储usb if (action.equals("android.hardware.usb.action.USB_STATE")) { boolean connected = intent.getExtras().getBoolean("connected"); if (connected) {//USB 已经连接 mIvUsb.setVisibility(View.VISIBLE); } else { if (BOOLEAN) {//USB 断开 mIvUsb.setVisibility(View.GONE); } } } //判断耳机 if (action.equals("android.intent.action.HEADSET_PLUG")) { int intExtra = intent.getIntExtra("state", 0); // state --- 0代表拔出,1代表插入 // name--- 字符串,代表headset的类型。 // microphone -- 1代表这个headset有麦克风,0则没有 // int i=intent.getIntExtra("",0); if (intExtra == 0) { if (BOOLEAN) { //拔出耳机 } } if (intExtra == 1) { //耳机插入 int intType = intent.getIntExtra("microphone", 0); if (intType == 0) { //没有麦克风 } if (intType == 1) { //有话筒 } } } BOOLEAN = true; } };
最后广播在ondestory里面unregister一下就行
第二个是发送广播到服务器
private void setBroadCast(long restflow) { Intent intent = new Intent(); intent.setAction("realtimeflow"); intent.putExtra("restflow", restflow); sendBroadcastAsUser(intent, UserHandle.ALL); // UserHandle.ALL只有在源码情况下才能编译通过,在AS上无法直接编译 }
最后:验证自己写的广播接收器能否接收到广播
ctrl+r进入命令行界面后按照如下格式发送广播 "adb shell am broadcast -a 你的广播 " adb shell am broadcast -a "a_test_broadcast"
相关文章推荐
- Android电量和插拔电源状态广播监听
- Android的Usb设备的监听(Dev)外设端口的判定以及耳机的插拔
- Android 监听 USB 接口的插拔状态
- Android的Usb设备的监听(Dev)外设端口的判定以及耳机的插拔
- android 利用广播监听usb连接状态
- Android 利用广播监听usb连接状态(变化情况)
- Android 通过广播监听USB连接状态的改变
- 广播监听USB插入与拔出
- android广播监听手机通话状态
- android 监听USB连接状态
- Android广播——监听系统状态
- android 使用广播监听网络状态
- Android打开WLAN开关的广播状态监听
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- sd卡状态监听广播
- android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- 关于android广播包监听网络状态变化收到java.lang.NullPointerException: Error receiving broadcast Intent
- android 使用广播监听网络状态