我正在开发一个Android应用程序,它根据RSSI信标信号显示消息。在后台扫描信标的类不是一个活动(但是类扩展了Application),所以我不能直接在这个类中显示包含一些信息的对话框。那么,如何在其他活动中捕获来自这个类的RSSI信号,然后显示对话框呢? 下面是扫描信标的类中的函数: @Override
public void onBeaconServiceConnect(){
mBeaconManager.setRangeNotifier(new Ran
我想在我的UI上将蓝牙连接强度显示为“信号强度条”,用于蓝牙低能耗设备。为此,我需要使用来自BluetoothGattCallback.onReadRemoteRssi的RSSI值。但是,该方法以分贝返回RSSI,而不是以巴为单位。我需要一些方法来可靠地将这个值转换为条形图或百分比。
在浏览Android文档寻找答案时,我偶然发现了WifiManager.calculateSignalLevel(int rssi, int numLevels)。是否可以使用此方法来解释蓝牙信号强度?如果不是,我该怎么做呢?
所以我需要得到LTE网络的RSSI,我知道CellSignalStrengthLte有获得RSSI的特殊方法,但是它可以用于>= 29,但是我的应用程序的最小API为23。不过,我可以得到信号强度的RSRP值,我看到有一些公式可以将RSSI转换为RSRP并返回,但我不知道如何在Android中应用它们。
有谁有解决办法吗?下面是一个代码的小例子:
val telephonyManager = requireContext().getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
teleph
我真的不太了解无线/ wifi信号,所以我对的电平场和wifi扫描的之间的区别感到困惑?它们是完全不同的概念吗?在Android文档中,两者似乎都没有得到很好的解释。
它们似乎都在dBm中,如果这意味着什么的话。
编辑
更清楚地说,我讨论的是通过查找键WifiManager.EXTRA_NEW_RSSI返回的值。文档中对此进行了解释:WifiManager.EXTRA_NEW_RSSI: The lookup key for an int giving the new RSSI in dBm.
我需要获得与多个蓝牙信标的距离以进行三角测量,以便我可以进行室内定位。我已经尝试给出尽可能多的相关细节。这个项目是针对RPi的,但我目前正在尝试首先通过我的笔记本电脑进行测试。我已经尝试了我在互联网上能找到的大多数关于这方面的东西:
我能找到的获得RSSI值的最好方法是hcitool rssi <address of beacon>
从这里开始
为了测试这一点,我首先尝试在我的手机上获取它。它显示"Not Connected“。我想我需要先连接,所以我尝试了很多方法来连接我的手机:
a) hcittol cc <address of mobile>
b) gat
我目前正试图开发一个使用信标技术的实时定位应用程序。为此,我需要使用信标跟踪。我正在使用Node,并使用计算x,y坐标。但是每次它只计算一个质心位置!
下面是计算x和y坐标的代码,以及使用RSSI值计算距离的代码。
app.js
var trilat = require('trilat');
var gatway1rssi=-30;
var gatway2rssi=-79;
var gatway3rssi=-29;
var d1 = calc_dist(gatway1rssi);
var d2 = calc_dist(gatway2rssi);
var d3 = c