在安卓中,可以使用以下代码示例来检查并请求用户权限以打开蓝牙:
private static final int REQUEST_ENABLE_BLUETOOTH = 1;
// 检查蓝牙权限
private void checkBluetoothPermission() {
// 检查是否有蓝牙权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_ADMIN) != PackageManager.PERMISSION_GRANTED) {
// 请求蓝牙权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.BLUETOOTH, Manifest.permission.BLUETOOTH_ADMIN}, REQUEST_ENABLE_BLUETOOTH);
} else {
// 已经有蓝牙权限,可以打开蓝牙
enableBluetooth();
}
}
// 处理权限请求结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_ENABLE_BLUETOOTH) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED &&
grantResults[1] == PackageManager.PERMISSION_GRANTED) {
// 用户已授权蓝牙权限,可以打开蓝牙
enableBluetooth();
} else {
// 用户拒绝了蓝牙权限请求,可以根据需求进行处理
// ...
}
}
}
// 打开蓝牙
private void enableBluetooth() {
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter != null) {
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BLUETOOTH);
}
}
}
// 处理打开蓝牙的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_ENABLE_BLUETOOTH) {
if (resultCode == RESULT_OK) {
// 蓝牙已成功打开
// ...
} else {
// 用户取消了打开蓝牙操作,可以根据需求进行处理
// ...
}
}
}
以上代码会检查是否有蓝牙权限,如果没有,则会请求用户授权。一旦用户授权,就可以打开蓝牙。如果用户拒绝了权限请求或取消了打开蓝牙操作,可以根据需求进行处理。