网站首页 > 博客文章 正文
android 6.0 以后,搜索蓝牙设备,打开蓝牙,除了需要蓝牙权限以外,
<!--蓝牙权限-->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 在android的6.0之前,需要在maniffests文件中 AndroidManifest.xml 添加上面的蓝牙权限就可以了
?
可以看到,但是在android 6.0 以后还需要下面的这两个权限.其实就是位置权限.
<!--6.0及之后需要动态申请-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
而且这个位置权限需要动态的去申请,下面就是动态申请android的位置权限的代码
?
比如我这里,在activity的onCreate方法中调用了,获取这个位置权限的方法.
1.下面是getPermission的方法.
/**
* 解决:无法发现蓝牙设备的问题
*
* 对于发现新设备这个功能, 还需另外两个权限(Android M 以上版本需要显式获取授权,附授权代码):
*/
private final int ACCESS_LOCATION=1;
@SuppressLint("WrongConstant")
private void getPermission() {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
int permissionCheck = 0;
permissionCheck = this.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION);
permissionCheck += this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
//未获得权限
this.requestPermissions( // 请求授权
new String[]{Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION},
ACCESS_LOCATION);// 自定义常量,任意整型
}
}
}
2.还有依赖的两个方法
/**
* 请求权限的结果回调。每次调用 requestpermissions(string[],int)时都会调用此方法。
* @param requestCode 传入的请求代码
* @param permissions 传入permissions的要求
* @param grantResults 相应权限的授予结果:PERMISSION_GRANTED 或 PERMISSION_DENIED
*/
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case ACCESS_LOCATION:
if (hasAllPermissionGranted(grantResults)) {
Log.i("TAG", "onRequestPermissionsResult: 用户允许权限");
} else {
Log.i("TAG", "onRequestPermissionsResult: 拒绝搜索设备权限");
}
break;
}
}
private boolean hasAllPermissionGranted(int[] grantResults) {
for (int grantResult : grantResults) {
if (grantResult == PackageManager.PERMISSION_DENIED) {
return false;
}
}
return true;
}
3.说明,将上面的代码,复制就可以使用了,就是程序启动的时候,调用一下,如果该程序没有获得位置权限的话,会自动弹出一个提示,是否允许,程序在使用期间,使用位置信息,点击允许,这个时候,再去,
搜索蓝牙设备就可以搜索到蓝牙了.
?
猜你喜欢
- 2024-10-02 K8s 网络问题自己能解决吗?(k8s网络不稳定)
- 2024-10-02 重学计算机组成原理(七)- 程序无法同时在Linux和Windows下运行
- 2024-10-02 AOP编程_Android优雅权限框架(2)Demo完全解析
- 2024-10-02 微信小程序云数据库update更新数据为0问题解决
- 2024-10-02 su切换用户:su failed to execute /bin/bash;Permission denied
- 2024-10-02 大数据------安装错误集锦(详细解决教程)
- 2024-10-02 gradle4.1后not resolve com.android.tools.build:gradle:3.0.1
- 2024-10-02 纳税申报系统常见问题(纳税申报系统常见问题有哪些)
- 2024-10-02 mediaDevices.getUserMedia提示DOMException:Permission denied by
- 2024-10-02 终于有人把所有的Java异常处理方法给总结出来了
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)