gpt4 book ai didi

android - react-native-beacons-manager 在 Android 上不显示任何信标

转载 作者:搜寻专家 更新时间:2023-11-01 08:23:50 25 4
gpt4 key购买 nike

使用 https://github.com/MacKentoch/react-native-beacons-manager

在 iOS 上运行良好,但是,在 Android 上,在我开始对信标进行测距后,信标阵列中什么也没有显示(我旁边有 6 个信标,它们都显示在 iOS 上)。

这是我正在做的:

componentDidMount() {

// Start detecting all iBeacons in the nearby
Beacons.detectIBeacons();

Beacons.startRangingBeaconsInRegion('Estimotes', 'B9407F30-F5F8-466E-AFF9-25556B57FE6D').then((data)=>{

console.log(data);

}).catch((reason) => {

console.log(reason);


});


// Print a log of the detected iBeacons (1 per second)
DeviceEventEmitter.addListener('beaconsDidRange', (data) => {

console.log(data);

});

}

在我的控制台中,我得到了这个:

{beacons: Array(0), uuid: "b9407f30-f5f8-466e-aff9-25556b57fe6d", identifier: "Estimotes"}

我将 Estimotes 的 UUID 保留为默认值,所以这应该可以工作。使用三星 Galaxy S8+ 进行测试。我在这里做错了什么编码吗?我是否缺少 Android 上的其他权限?蓝牙和定位服务已开启。

最佳答案

好吧,我明白了。较新版本的 android 需要额外的权限。在你的 list 中,把这个人扔进去:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

.... 如果您使用的是 react-native-kontaktio(在我看来比 react-native-beacons-manager 更好),您还需要将其放入 <application> 的 list 中部分:

<service android:name="com.kontakt.sdk.android.ble.service.ProximityService"/>

然后在你的 app.js 中你需要请求像 () 这样的权限确保你

import PermissionsAndroid
from 'react-native'

:

componentDidMount() {

try {
const granted = PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Permission',
'message': 'Activeev needs to access your location.'
}
)
console.log('here', granted);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("Location Permitted")
} else {
console.log("Location permission denied")
}
} catch (err) {
console.warn(err)
}
}

现在工作得很好。希望这可以帮助别人。

关于android - react-native-beacons-manager 在 Android 上不显示任何信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47358824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com