用BroadcastReceiver监听蓝牙

定义广播:

<span style="font-size:18px;color:#ff0000;"> private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();

            // 发现蓝牙设备触发
            if (BluetoothDevice.ACTION_FOUND.equals(action)) {           
            } 
            // 搜索完成触发
            else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
            }
            // 蓝牙状态改变触发
            else if(BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)){  
            }
            // 蓝牙连接成功触发
            else if(BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)){     	
            }
            // 蓝牙连接断开触发
            else if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)){         
            }
      }
 };</span>	


注册广播:

<span style="font-size:18px;color:#ff0000;">// 监听蓝牙开关状态
IntentFilter stateFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
this.registerReceiver(mReceiver, stateFilter);
		
// 监听蓝牙连接成功
IntentFilter connectFilter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED);
this.registerReceiver(mReceiver, connectFilter);
		
// 监听蓝牙连接断开
IntentFilter disconnectFilter = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver(mReceiver, disconnectFilter);
		
// 发现蓝牙
IntentFilter discoveryFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);    
this.registerReceiver(mReceiver, discoveryFilter);                               

 // 搜索完成
 IntentFilter foundFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);   
 this.registerReceiver(mReceiver, foundFilter); </span>






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android应用程序中监听蓝牙,可以使用BluetoothAdapter类和BroadcastReceiver类。首先,需要获取BluetoothAdapter实例并使用registerReceiver()方法注册BroadcastReceiver监听BluetoothAdapter.ACTION_STATE_CHANGED和BluetoothDevice.ACTION_FOUND事件。在BroadcastReceiver的onReceive()方法中,可以处理蓝牙状态变化和发现新设备的事件。以下是一个简单的示例代码: ```java // 获取BluetoothAdapter实例 BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); // 注册BroadcastReceiver监听蓝牙状态变化和新设备发现事件 IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); filter.addAction(BluetoothDevice.ACTION_FOUND); registerReceiver(bluetoothReceiver, filter); // BroadcastReceiver处理蓝牙事件 private final BroadcastReceiver bluetoothReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); switch (state) { case BluetoothAdapter.STATE_OFF: // 蓝牙关闭 break; case BluetoothAdapter.STATE_TURNING_OFF: // 蓝牙正在关闭 break; case BluetoothAdapter.STATE_ON: // 蓝牙打开 break; case BluetoothAdapter.STATE_TURNING_ON: // 蓝牙正在打开 break; } } else if (BluetoothDevice.ACTION_FOUND.equals(action)) { // 发现新设备 BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); String deviceName = device.getName(); String deviceHardwareAddress = device.getAddress(); } } }; ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值