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