当前位置: 首页 > 知识库问答 >
问题:

在Android中读取蓝牙RSSI的BLE接近模式

丌官翰采
2023-03-14

我目前正在为Android开发蓝牙低能量接近模式,我偶然发现了一个关于RSSI的问题。

为了使近距离配置文件工作,我必须每隔很短的时间用已经连接的设备接收RSSI数据。

我做了一些研究,了解到在设备发现过程中获得蓝牙RSSI是可能的。这对我不起作用,因为从设备在连接后不会发布广告。

另一种方法是深入到人机界面级别并使用BlueZ。这似乎是相当低的水平。有人有这方面的经验吗?

有人见过Android上开发的近距离模式吗?

共有3个答案

颜思淼
2023-03-14
final Runnable runnable = new Runnable() {  
    @Override
    public void run() {
        // TODO Auto-generated method stub
        mBluetoothLeService.readRemoteRssi();
        mHandler.postDelayed(this, 1000);
    }
};

and add mHandler.postDelayed(runnable, 1000); Should work.
栾耀
2023-03-14

你可以得到数据

邢寒
2023-03-14

连接一段时间后,可以重复使用readRemoteRssi()方法。但它不会很好地工作。因为挂起的标志错误。另一种方法是,您可以启动和停止blescan,并获取扫描设备的rssi值。这将是更好的方法,因为在nexus 7 2013设备和一些三星设备中,它们不是过滤ble设备,而是返回ble设备。

 类似资料:
  • 我试图用BLE API扫描附近的蓝牙设备,但它似乎不起作用 我已经在清单中添加了权限 以下内容在创建对象时 创建扫描仪回调对象并进一步扫描 在logcat中,我只看到以下内容 这是我的app build gradle } 有人能指出我在这里遗漏了什么吗?

  • 我正试图在一个项目中实现蓝牙(BLE)网关,以便在硬件和带有应用程序的移动设备之间传输数据。硬件不是唯一的,它可以批量生产,控制器中有相同的程序。 如果制作了100个硬件产品,并排通电,那么设置BLE广播的信息以进行广告的最佳方式是什么,以便移动设备可以接收该信息,并且在任何时候只能连接1个硬件和移动设备。 例如,如果您同时拥有3个相同的健身跟踪手表,并且您只想连接其中一个,那么如何区分手机蓝牙配

  • 我是新来的JavaScript,所以我可能有一些非常规的编程方式。也就是说,我正在做一个项目,我需要读写数据到自定义BLE设备。我使用gatt服务器协议进行连接。我能够与设备连接,但现在我试图从寄存器中读取数据。 我看了从谷歌以及网络蓝牙github的网络样本,但我无法理解它。下面的代码是我目前试图打破这一点。早期的尝试让我陷入了这样一个事实,即我得到的值是一个对象或一个promise对象。

  • 我已经将通知设置到android中,它没有调用方法onCharacteristicRead()????它不进入该功能。为什么会这样?? 非常感谢您的帮助 请求解决方案。 这是我的代码: 提前谢谢!!

  • 问题内容: 我正在使用蓝牙聊天功能,以便连接和接收来自蓝牙设备的数据。 我使用以下代码读取数据: 设备一直在发送数据而不会停止。 通过上面的代码,我得到以下消息: 然后转到下一行: 并且永远不会从该呼叫中返回。我猜这是因为它开始从设备读取数据,并且直到断开连接才停止。如何一次读取一定数量的字节? 编辑 除非由于它不保留代码,否则不从设备取回任何数据? 问题答案: 我改用DataInputStrea

  • 我一直在开发一个与BLE设备交互的应用程序。一切都很好,我可以扫描、连接和使用服务。 我已经阅读了所有的文档,我没有看到任何让开发人员可以选择监听BLE设备的内容。基本上,我想在设备进入BLE设备的范围时触发广播接收器。 我知道我可以不断地扫描它,但电池使用量太高了,我希望即使在我的应用程序没有被使用的时候也能调用它。 是否不支持此功能,或者我是否缺少讨论此功能的文档部分?