ACTION_FOUND 不在BluetoothAdapter类里面,而是在BluetoothDevice里面的常量。
/***
*注册一个广播,已封装到BluetoothManager类
*/
private BroadcastReceiver bluetoothReceiver = new BroadcastReceiver() {
@Override
@RequiresPermission(value = "android.permission.BLUETOOTH_CONNECT")
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_ON:
Log.d("BluetoothReceiver", "蓝牙已开启");
break;
case BluetoothAdapter.STATE_OFF:
Log.d("BluetoothReceiver", "蓝牙已关闭");
break;
case BluetoothAdapter.STATE_TURNING_ON:
Log.d("BluetoothReceiver", "蓝牙正在开启");
break;
case BluetoothAdapter.STATE_TURNING_OFF:
Log.d("BluetoothReceiver", "蓝牙正在关闭");
break;
}
} else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
Log.d("Bluetooth", "蓝牙设备搜索开始");
} else if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String deviceName = device.getName();
String deviceAddress = device.getAddress();
Log.d("Bluetooth", "发现设备: " + deviceName + " 地址: " + deviceAddress);
}
}
};