1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 鸿蒙2.0及以上 Android M-蓝牙开发:解决搜索不到蓝牙设备

鸿蒙2.0及以上 Android M-蓝牙开发:解决搜索不到蓝牙设备

时间:2022-06-23 08:05:18

相关推荐

鸿蒙2.0及以上 Android M-蓝牙开发:解决搜索不到蓝牙设备

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- ACCESS_FINE_LOCATION:允许一个程序访问精确位置(如GPS) -->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- ACCESS_COARSE_LOCATION:允许一个程序访问CellID或WiFi热点来获取大致的位置 -->

/**

* 解决:无法发现蓝牙设备的问题

*

* 对于发现新设备这个功能, 还需另外两个权限(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);// 自定义常量,任意整型

}

}

}

/**

* 请求权限的结果回调。每次调用 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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。