今天早上做了一个android的App的一个蓝牙模块,刚开始使用了第三方的蓝牙操作库(为了偷懒)。。。调试的时候却发现一个问题,不论怎样都无法搜索到设备。
重新自己写一个操作库,一步一步检查,
蓝牙开启,权限加了,广播注册没有问题,和以前写的蓝牙模块也没什么区别啊。
What? 木有问题啊,为什么搜索不到设备呢,换了两部手机一样不行。

经过一番思考后,突然想起android从6.0开始一些权限需要动态注册,可能是这个问题。

参照Android 6.0新特性

果不其然,果然是动态权限注册的问题。
首先蓝牙操作都需要在Manifest中注册两个权限
其次在API 23及以上的版本都需要动态权限注册

而蓝牙则需要动态添加这两条权限

        

动态权限的注册方法
(这里用了第三方的动态权限注册库 AndPermission
具体实现代码可以这样

        AndPermission.with(this)                .permission(Manifest.permission.ACCESS_COARSE_LOCATION , Manifest.permission.ACCESS_FINE_LOCATION)                .callback(new PermissionListener() {                    @Override                    public void onSucceed(int requestCode, @NonNull List grantPermissions) {                      ///权限注册成功时                    }                    @Override                    public void onFailed(int requestCode, @NonNull List deniedPermissions) {                        MainActivity.this.finish();///注册失败时                    }                })                .start();

ok完事,次饭!
Wi-Fi搜索设备也需要定位权限,且开启定位。

更多相关文章

  1. android 手机安装应用程序(APK)权限详细对照表
  2. Android所设计的权限
  3. Android与蓝牙串口模块通信
  4. android下创建文件夹和修改其权限的方法
  5. Java中的ClassLoader 动态加载机制
  6. 【android 蓝牙开发——BLE(低功耗)蓝牙】
  7. Android 安全:移除不必要的三方依赖权限
  8. 《第一行代码Android》学习总结第七章 运行时权限

随机推荐

  1. Foreach循环遍历数组
  2. PHP数据类型及开发环境部署
  3. 初始 php 及认识 php 变量与数据类型
  4. PHP环境搭建与初识PHP
  5. oop编程 委托 和回调
  6. foreach 获取省市区
  7. 循环读取数组
  8. phpstorm 配置环境本地服务器教程
  9. PHP函数的使用
  10. 第十二课 数组循环