React 原生 WiFi 重生

问题描述 投票:0回答:0

我正在努力使用

react-native-wifi-reborn
包在 expo 上运行的反应本机应用程序中获取 WiFi 列表。我需要加载 WiFi 列表并从使用
loadWifiList
方法找到的每个 WiFi 连接中获取一些参数。

我知道有人问过类似的问题,但我没有找到解决方案。 我写了一些代码。首先,我在

accessFineLocation
util 中询问 Fine Location 权限,并检查它是否被授予。然后我加载 WiFi 列表。你知道为什么
WifiManager
null
的一些原因吗?

这是我的

WifiScanner
组件代码:

import React, { useEffect } from 'react';
import { View, PermissionsAndroid } from 'react-native';
import { accessFineLocation } from '../../utils/accessFineLocation';
import WifiManager from 'react-native-wifi-reborn'


const WifiScanner = () => {
  useEffect(() => {
    const handleWifiScan = async () => {
      const granted = await accessFineLocation();
      if (granted !== PermissionsAndroid.RESULTS.GRANTED) return;

      console.log(WifiManager)
      const wifiList = await WifiManager.loadWifiList();
    }
        
    handleWifiScan();
  }, []);

  return (
    <View>
      
    </View>
  );
};

export default WifiScanner;

accessFineLocation
实用功能:

import { PermissionsAndroid } from "react-native";

export const accessFineLocation = async () => {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        {
          'title': 'Wifi networks',
          'message': 'We need your permission in order to find wifi networks',
          buttonPositive: 'Allow'
        }
      )
      
      return granted;
    } catch (err) {
      console.warn(err)
    }
}

这行WifiScanner组件

console.log(WifiManager)
注销
null

react-native expo wifi wifimanager
© www.soinside.com 2019 - 2024. All rights reserved.