Android M(6.0)扫描不到蓝牙设备的处理办法
2017-07-27 15:15
295 查看
解决办法:
1,在清单文件加入权限:
[html] view plain copy <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
[/code]
2,在Activity中调用 requestPermissions() 方法来请求权限,系统会弹出需要请求权限的对话框
3,重写Activity的onRequestPermissionsResult()方法,接收权限是否请求的请求状态
示例代码如下:
1,在清单文件加入权限:
[html] view plain copy <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
[/code]
2,在Activity中调用 requestPermissions() 方法来请求权限,系统会弹出需要请求权限的对话框
3,重写Activity的onRequestPermissionsResult()方法,接收权限是否请求的请求状态
示例代码如下:
[java] view plain copy private static final int PERMISSION_REQUEST_COARSE_LOCATION = 1; @Override protected void onCreate(Bundle savedInstanceState) { ...... if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // Android M Permission check if (this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION); } } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case PERMISSION_REQUEST_COARSE_LOCATION: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { // TODO request success } break; } }
注: 第2、3步骤在targetSdkVersion大于等于23(6.0)时必须添加,小于23时可以不用添加。所以另外一种处理办法是只加权限,然后把targetSdkVersion设置到23以下也能达到同样的效果,不过用户可以在权限管理中禁止了该权限,一样会搜不到设备。 另外在Android 6.0上对应用权限进行授权是发生在应用运行时,而不是在安装时。同时用户也可以在应用程序设置中撤销对应用的权限授权。因此当要获取敏感权限(如相机、联系人)时最好先检查用户是否授予了改权限,如果没授予给出提示框提醒用户授予。
http://blog.csdn.net/u010134293/article/details/52808832
相关文章推荐
- Android M(6.0)扫描不到蓝牙设备的处理办法
- Android M(6.0)扫描不到蓝牙设备的处理办法
- Android 6.0蓝牙搜索不到附近设备
- Android 6.0 Kotlin 蓝牙BLE扫描(改为指定时间没有发现新设备后停止扫描使用interface)
- Android 6.0 扫描不到 Ble 设备需开启位置权限
- Android 6.0 BluetoothAdapter.startDiscovery()扫描不到蓝牙的问题分析及解决
- Android 6.0 扫描不到 Ble 设备需开启位置权限
- Android 6.0 扫描不到 Ble 设备需开启位置权限的方法
- Android 6.0 Kotlin 蓝牙BLE扫描(改为指定时间没有发现新设备后停止扫描)
- Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法
- Android 6.0 扫描不到 Ble 设备需开启位置权限
- Android 扫描附近的蓝牙设备并连接蓝牙音响的示例
- Android蓝牙扫描设备过程
- Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
- Android中BluetoothAdapter.startDiscovery方法搜索蓝牙设备不起作用的解决办法
- Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
- Android 扫描附近的蓝牙设备并连接蓝牙音响
- BluetoothAdapter在Android6.0/7.0+以上startDiscovery不能发现蓝牙设备问题
- Android 蓝牙自动打开并扫描设备,以及获取对方蓝牙设备的种类
- Android之蓝牙startDiscovery()搜索不到设备