一、权限说明
使用蓝牙时,需要获取蓝牙的权限,在 Manifest.xml文件中添加权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
如果需要主动后台启动蓝牙,则需要添加
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
在Android 6.0之后,蓝牙的使用多了一个权限:
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>
并且需要运行时动态获取权限:
public void requestPermission(Activity activity, int requestCode) {
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, requestCode);
}
}
在Activity中获取用户的选择:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
for (int index = 0; index < permissions.length; index++) {
if (Manifest.permission.ACCESS_COARSE_LOCATION.equals(permissions[index])) {
if (grantResults[index] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "用户允许使用蓝牙", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "用户拒绝使用蓝牙", Toast.LENGTH_LONG).show();
}
}
}
}
二、相关操作
1. 获取蓝牙适配器
在使用蓝牙SSP的过程中,始终需要用到一个类:BluetoothAdapter,蓝牙的很多相关操作都被封装在这个类中,使用如下方式获取蓝牙适配器的实例:
bluetoothAdapter =