Android 打开系统蓝牙设置

判断蓝牙是否开启

public static boolean isBluetoothEnable() {
    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    return bluetoothAdapter.isEnabled();
}

AndroidManifest文件中添加权限:

<uses-permission android:name="android.permission.BLUETOOTH" />

打开蓝牙设置

private int openSetting(String setting){
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_BLUETOOTH_SETTINGS);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try{
        startActivity(intent);
    } catch(ActivityNotFoundException ex){
        ex.printStackTrace();
    }catch (Exception e){
        e.printStackTrace();
    }
}

此时发现并不能打开蓝牙设置界面,报错如下:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.BLUETOOTH_SETTINGS flg=0x10000000 cmp=com.android.settings/.Settings$BluetoothSettingsActivity } from ProcessRecord{4444b4b0 31323:org.zywx.wbpalmstar.widgetone.uexdevice/u0a1149} (pid=31323, uid=11149) requires android.permission.BLUETOOTH_ADMIN
       at android.os.Parcel.readException(Parcel.java:1472)
       at android.os.Parcel.readException(Parcel.java:1426)
       at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2317)
       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1437)
       at android.app.Activity.startActivityForResult(Activity.java:3479)
       at android.app.Activity.startActivityForResult(Activity.java:3440)

由log可知,权限被拒绝,但是没说是缺少什么权限,Google之后发现是缺少如下权限:

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

将其添加进AndroidManifest文件中即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值