react-native-开发笔记-蓝牙

rn androin 蓝牙权限 蓝牙开启  

依赖 : react-native-ble-manager  库为数不多的还在更新的第三方库 权限配置出现各种权限报错经过最终修改跟官方略有不同,修改AndroinManifest文件后可能依然会提示权限问题,可能是百编译问题需要重启项目重编译代码,

yarn add  react-native-ble-manager 

权限配置 androin/app/src/main/AndroinManifest.xml 中添加  

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
  package="com.rn">

   <uses-permission android:name="android.permission.BLUETOOTH" tools:remove="android:maxSdkVersion" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" tools:remove="android:maxSdkVersion" />

    <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="29"/>
    <uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="29"/> -->

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"
                     android:usesPermissionFlags="neverForLocation" />
       <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
          <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> 
</manifest>

配置成功就可在组件中引用  以下是引用代码 

import { NativeModules,NativeEventEmitter,NativeAppEventEmitter,  PermissionsAndroid, } from "react-native" 
import BleManager from 'react-native-ble-manager';
const BleManagerModule = NativeModules.BleManager;
const bleManagerEmitter = new NativeEventEmitter(BleManagerModule);

方法调用蓝牙初始化 

    BleManager.start({showAlert: false})
    // 初始化成功后检查蓝牙状态
    .then(() => {}) 


         bleManagerEmitter.addListener('BleManagerDidUpdateState', (args) => {
      console.log('蓝牙状态:', args);
      // 蓝牙已打开
      if(args.state == 'on' ) {
          
      }
    }); 
    搜索蓝牙设备
    BleManager.scan([], 30, true).then(() => {
      // Success code
      console.log("Scan started");
    }).catch(error => {
      console.log('搜索失败', error);
    });; 
//开启蓝牙 
  const checkStatest = async ()=>{
    BleManager.enableBluetooth()
    .then(() => {
      // Success code
      console.log("The bluetooth is already enabled or the user confirm");
    })
    .catch((error) => {
      // Failure code
      console.log(error);
      console.log("The user refuse to enable bluetooth");
    });
    
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值