Android 打开系统蓝牙设置
16lz
2021-01-23
判断蓝牙是否开启
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文件中即可。
更多相关文章
- android源码修改USB权限,去掉USB弹出框
- 蓝牙原理Android代码实现
- android蓝牙开发入门到精通2---查找可见蓝牙并绑定
- android 模拟器获得root 权限
- Android应用程序获取ROOT权限的方法(android中如何通过代码检测
- android(7)(写数据权限)
- Android 开机自启和后台自启权限
- android 串口通信,蓝牙通信等需要输出十六进制数据的方法
- android典型代码系列(十)------获取一个应用程序的权限信息(反射