这里当时参考官网遇见一个问题,报错:Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException
大概意思是:你要用的这个权限,可能会被用户拒绝,所以代码上要给用户选择,具体方法已经写到上面
这是查询已配对蓝牙的信息
else{
//查询已配对的蓝牙设备信息 原因:这是有必要的,如果有的话,可以直接使用这个信息去连接
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
if (pairedDevices.size() > 0) {
// There are paired devices. Get the name and address of each paired device.
for (BluetoothDevice device : pairedDevices) {
String deviceName = device.getName();
String deviceHardwareAddress = device.getAddress(); // MAC address
}
}
}
private final BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// Discovery has found a device. Get the BluetoothDevice
// object and its info from the Intent.
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String deviceName = device.getName();
String deviceHardwareAddress = device.getAddress(); // MAC address
}
}
};
同时,在发现设备时还需要注册广播
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(receiver,filter);
任务:完成一个安卓遥控器(利用蓝牙实现)
任务链接: https://qgd5xm63s9.feishu.cn/sheets/CWcIsG9awhV0a8tj8KmcAr46nXc
1、今天在学习官方文档,目前进行到查找设备部分
首先要在项目中使用蓝牙功能,需要在配置文件中声明
如上,是我使用蓝牙需要添加到部分
2、MainActivity中进行了如下操作
这部分基本上是跟着官网走的,所以没有遇见太大了的问题,解释一下上面
如何检查设备是否支持蓝牙
开启蓝牙
这里当时参考官网遇见一个问题,报错:Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with
checkPermission
) or explicitly handle a potentialSecurityException
大概意思是:你要用的这个权限,可能会被用户拒绝,所以代码上要给用户选择,具体方法已经写到上面
这是查询已配对蓝牙的信息
为什么要有这一步?我之前也觉得我可能不会用到,因为你如果不写这个,第一次匹配以后,第二次用的时候不可能又去匹配吧,所以需要这个方法
这里是扫描蓝牙信息,查找设备
同时,在发现设备时还需要注册广播
最后,还要销毁这个接收器
明日任务:学习完官档,把其中一个app的框架搭好。