天道酬勤,学无止境

Can I read iBeacon data using Arduino?

I am using an HM-10 module and Arduino UNO.

My requirement is to read data from ibeacons near me using Arduino. Is it possible? I have not been able to find any articles on this. All articles talk about connecting your android phone with arduino. Any idea?

评论

Yes, it is possible. I'm using an HM-10 as an iBeacon detector (linksprite.com BLE 4.0 shield), and it is successfully detecting a RadBeacon running in iBeacon mode. Firmware on my HM-10 is version 540.

Before it would detect the RadBeacon, I had to send the HM-10 the following commands:

AT+ROLE1
AT+IMME1
AT+RESET

Then I used the AT-DISI? command, and the serial monitor is showing the broadcast received from the RadBeacon (and one other beacon) as follows (for example):

OK+DISISOK+DISC:4C000215:2G234454CF6D5A0FADF2F4911BA9FFA7:00000001AC:0CF3EE041CCE:-052OK+DISC:00000000:00000000000000000000000000000000:0000000000:B9782E08068C:-071OK+DISCE

In this example, the HM-10 is detecting my RadBeacon which has UUID of 2G234454...with signal strength of -052. It is also detecting another BLE beacon (my AppleTV downstairs) with UUID of B9782E08068C with signal strength of -071.

I'm definitely not very knowledgable about any of this stuff, but it seems to be working for me so far. Next challenge for me will be to figure out how to parse the text data being received. I'm mostly interested in the distance/signal strength data in order to trigger an action when the RadBeacon gets very close to the HM-10.

[Full disclosure: I jumbled some of the UUID numbers above since I'm not sure if any of this information is private or hackable or whatever]

[By the way, the nRF8001 BLE Shield will not do this since it only runs in peripheral mode.]

In firmware version V539 of the HM-10, it adds an AT command to list nearby iBeacons. The command is AT+DISI?. You would simply need to set up the Arduion to send that command over a serial port and parse the data it returns.

Yes, you can get the Min and Max number of the nearby iBeacons. You need to Attach hm-10 to Arduino Uno.

Try using this Library : https://github.com/dinosd/BLE_PROXIMITY You can configure suitable AT commands if you want to configure it. But it should work with default settings as well.

Use SoftwareSerial to access HM-10.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 从 iBeacon 接收 BLE 信号到 Bluno(带有 BLE 的 arduino)(Receive BLE signal from iBeacon to Bluno(arduino with BLE))
    问题 我想从 iBeacon 接收 rssi 信号和 UUID 到 Arduino 板具有 BLE 的 Bluno。 对此有一些问题。 是否有任何解决方案可以从 BLE 接收 UUID 和 RSSI 到 BLE? 是否可以相互通信两个 BLE 设备? 我想要一些网站来参考这个问题。 我还需要将 bluno 与 AR.Drone 连接起来。 你能给我一些建议吗? 感谢您的帮助 回答1 Bluno 能够充当 iBeacon(发射器),但它无法接收 iBeacon 公告并将其传递给 Arduino。 BLE 设备可以通信并且可以接收 UUID 和 RSSI,但这取决于设备的能力和它公开的接口。 例如,iOS 设备公开了一个非常复杂的 BLE API。 Bluno 板没有。 它向 Arduino 公开了一个“串行端口”,并将发送/接收数据映射到一组 BLE GATT 特性。 可以将一对 Bluno 设备配置为无线串行链路,或者计算机或移动设备上的软件可以通过蓝牙堆栈与 Arduino 交换数据。 有一个 AT 命令将返回配对设备的 rssi,但文档不清楚这是否可用于 Arduino 或仅通过 USB 连接到计算机。 特别是 Bluno 的最佳参考(例如它是)似乎是 DFRobot Wiki 我怀疑您是否能够直接从没有蓝牙 LE 的 Bluno 使用低功耗蓝牙连接到 AR.Drone。
  • 计算 Arduino BLE 扩展板和手机之间的距离(Calculate Distance between Arduino BLE shield and Phone)
    问题 是否可以计算 arduino 蓝牙屏蔽(BLE Shield 2.1)和手机之间的距离? 更具体地说,当手机距离盾牌不到 5 英尺时,我希望它执行一个动作。 我知道 BLE Beacon 技术能够在一般意义上(立即、近、远)做到这一点,所以我想知道这是否可能? 查看堆栈溢出,我找到了以下答案,但它们都过时了: 回答 1 回答 2 我知道超声波频率和激光瞄准器都是可选的,但我正在努力降低成本,因此我更喜欢一种无需使用其他工具即可计算距离的方法。 回答1 是的,您可以将其用于基于 RSSI(接收信号强度)的距离计算。 您应该按照 Eirik M 回答中的说明在 Arduino 端实现 iBeacon。 在我看来,最重要的是您必须了解 BLE/iBeacon 精度。 请仔细阅读以下文章,以确定 iBeacon 技术是否适合您的需求。 如果是这样,实施应该是直截了当的。 广播功率和RSSI 信标实验:运行中的低功耗蓝牙设备 回答2 如果 BLE 信标对您来说足够好,那么为 Arduino 扩展板实现信标应该相当容易。 您需要注意一些事项,例如输出功率和天线特性。 我建议阅读信标技术以了解其工作原理。
  • Receive BLE signal from iBeacon to Bluno(arduino with BLE)
    I want to receive rssi signal and UUID from iBeacon to Bluno which the Arduino board has BLE. there are some questions for this. Are there any solutions to receive UUID and rssi from BLE to BLE? Is it possible to communicate two BLE device each other? I want some sites to reference for this problem. I also need to connect bluno with AR.Drone. Could you give me some advices for this? thank you for your help
  • 如何从iBeacon / BLE检索广告有效载荷(How to retrieve advertising payload from iBeacon / BLE)
    问题 如何在Linux中检索Bluetooth LE发射器的广告有效载荷? 具体来说,我已经使用hcitool将arduino和R-PI配置为iBeacons。 我正在寻找的命令是打印出该设备当前的广告有效负载。 回答1 在Radius Networks,我们整理了一组脚本,这些脚本从Linux上检测到的BLE广告中解析出iBeacon标识符。 您可以在此处找到对此的描述。 如果您只想查看原始广告字节,则可以使用以下命令在Linux上开始扫描: sudo hcitool lescan --duplicates & 然后使用以下命令查看结果: sudo hcidump --raw 更多细节在上面链接的答案中。 回答2 由于libpcap-1.0 +现在支持蓝牙捕获,因此您可以使用Wireshark / tshark / tcpdump捕获和显示Bluetooth数据包-BTLE和其他数据包类型。 要使用Wireshark捕获LE数据包,您仍然需要告诉蓝牙接口查询LE数据包,如上一个答案中所述: sudo hcitool lescan --duplicates & 另外,如果您希望适配器对处于可发现模式的蓝牙设备进行定期查询,则可以运行(尽管这些查询不会获取BTLE发射): sudo hcitool spinq 回答3 sudo hcitool lescan --duplicates
  • 如何通过蓝牙将串行数据发送到未指定的设备?(How to send serial data via Bluetooth to an unspecified device?)
    问题 我将以下代码用于 Arduino Uno: #include <SoftwareSerial.h> SoftwareSerial device(2, 3); void setup() { device.begin(9600); } void loop() { device.println("33,89,156,203,978,0,0;"); } 没有设置要发送到的特定设备。 如果我想在我的笔记本电脑(运行 Ubuntu 14.04)上接收数据,我只需调用: sudo rfcomm bind rfcomm0 [MAC ADDRESS] 1 和 screen /dev/rfcomm0 在另一个终端实例中,它可以工作。 如何使用 Android 应用程序实现相同的行为? 以下示例代码指定了一个设备。 我找不到任何其他代码。 此外,它仅在我在笔记本电脑上监听这样的传入连接时才有效: sudo rfcomm listen rfcomm0 [MAC ADDRESS] 我希望我的 Android 应用程序能够像 Arduino 示例一样工作。 我怎样才能做到这一点? 回答1 不幸的是,Android 似乎没有允许您执行广播类型行为的低级经典蓝牙 API。 这是有道理的,因为 Android 旨在进入功率受限的设备,并且有源无线电使用能量。 如果您需要使用经典蓝牙 (3.x) 和
  • HM10 ble 改变特征值 AT 命令 Arduino(HM10 ble change characteristic value AT command Arduino)
    问题 任何人都可以帮助我使用 AT 命令来写入特征值,或者如何使用 Hm10 模块将数据从 arduino 发送到另一个 ble 设备。 HM10发送AT+START后,会做广告包,可以检测服务和特征,但是特征值是默认的0x00,怎么改? 已多次检查数据表,但找不到能够执行相同操作的 AT 命令。 更新:在中央模式下设置 HM10 的类似问题: 中央模式设置! 1) AT+ROLE1 - 设置为中央模式 2) AT+IMME1 - 从 RESET 开始 3) AT+SHOW1 - 显示发现的设备 4)AT+光盘? - 发现设备获取设备 MAC ID, 5) AT+CON[MAC ID] 结果:总是给出 OK+CONNA 并在 10 秒后给出 OK+CONNF 我很困惑,在“AT+DISC”之前使用“AT+START”? 导致 AT+START 不起作用,反之亦然。 使用 AT+START 会导致 OK+CONN 循环,然后是 OK+LOST,并且不再接受更多的 AT 命令。 我相信它会导致 你能建议正确的顺序吗? 使用 LightBlue iOS 应用程序作为外围设备。 如何选择服务并订阅特征以从应用程序接收数据? 谢谢你。 回答1 没有设置特征值的 AT 命令。 HM10 是一个串行端口仿真设备 - 您发送到 HM10 模块的任何串行数据(除了 AT 命令)都可以通过它的 BLE
  • 如何将数据发送到变成iBeacon的iphone?(How to send data to an iphone which is turned into a iBeacon?)
    问题 如何将数据发送到充当iBeacon的iPhone? 我正在寻找以下流程: 搜索附近的iBeacons 连接到一些iBeacon 在设备之间交换数据 有谁知道如何将不同的蓝牙功能放在一起使之成为可能? 提前 回答1 标准iBeacon是仅传输设备,移动设备可以看到它们,但实际上并不“连接”到它们或交换数据。 但是,您仍然可以按照自己的要求进行操作,无论您是否在所有设备上都有应用程序以及网络服务都可以进行数据传输。 这将允许设备A和B在附近时互相检测并交换数据。 就是这样: 您在设备A和B上的应用程序在充当iBeacon(通过应用程序特定的标识符和电话特定的标识符进行广告的存在)与范围内的iBeacon信号(包括应用程序特定的标识符)之间进行切换。 在其测距周期内,设备A上的应用程序将检测到来自设备B的iBeacon传输,其中包括您的应用程序标识符和设备B的设备标识符。 然后,应用程序A使用源“ A”和目标“ B”以及要传输的任何数据(例如“设备A向设备B打个招呼”)对Web服务进行“写入”调用。 该应用程序还将定期向Web服务发出“读取”调用。 在此示例中,设备B将读取发往B的任何信息,并且Web服务将返回一条记录,表明设备A已向其发送了一条消息,其中包含数据“设备A向设备B打个招呼”。 由于两部手机也都运行相同的过程,因此这种通信可以双向发生。 回答2
  • 读取 iBeacon 的电池电量(Read battery Level of a iBeacon)
    问题 我必须读取 iBeacon 的电池电量。 正如我正在研究的那样,使用协议配置是不可能的吗? 这里的建议告诉我它正在使用蓝牙协议读取数据包,我有数据包的描述 kontakt 数据包描述。 但是当我阅读这些数据时? 我如何具体从 iBeacon 读取数据。 谢谢你。 回答1 iBeacon API 不允许您读取电池电量。 您也许可以使用 Core Bluetooth 读取它。 Kontakt 提供了一种快捷方式来获取扫描响应包中的电池电量,这很方便,但也是专有的。 Kontakt 还实现了 BLE 电池服务 0x180F,这是一种更通用的获取电池电量的方法。 您需要连接并读取 Characteristic 0x2a19 的值以获取电池百分比。 不幸的是,并非所有信标都会宣传电池服务。 Estimote 在其专有服务之一中发回电池信息。
  • 了解 iBeacon 数据:功率字段和其他字节(Understanding iBeacon data : the power field and other bytes)
    问题 我是蓝牙系统的新手,我试图了解用于新 Apple 技术的数据:iBeacon。 已经有一些很好的答案解释了它是如何工作的,我一直在阅读我能找到的所有内容(尤其是蓝牙规范)。 尽管如此,我还是遗漏了一些要点,我将首先举一个例子:(我正在使用设置广告数据命令,它在这里错过了 OGF 之前的hcitool cmd ) 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 C5 6D B5 DF FB 48 D2 B0 60 D0 F5 A7 10 96 E0 00 00 00 00 C5 00 我会在这里列出我不明白或找不到的信息。 是否有任何关于 OGF 的信息(这里是0x08 )? 我知道它代表 OpCode Group Field,但与 OGF 后面的 OCF 相反,我没有找到任何东西。 02 01 1A 1A bytes 线代表什么? 我知道第一个字节1E表示其余数据的长度,在该行之后,从FF开始,您可以获得制造商特定的数据。 但是我找不到关于这 4 个字节的任何信息。 功率字节如何工作? 这是C5 。 我知道我得到的是测距 iBeacon 时的 dBm 值(例如在我的 iPhone 上)。 而且我知道值越高(在那个功率字节上),功率越高,这意味着更高的准确性,但也意味着更多的能源消耗。 但是你如何使用那个字节呢?
  • Read battery Level of a iBeacon
    I have to do the reading of the battery level of a iBeacon. As I was researching is not possible using the protocol cllocation right ?. The recommendation here tell me it is reading the data packet with bluetooth Protocol,I have the description of the data packets kontakt Data packet description. But as I read these data? how I can read data from a iBeacon in specific. Thank you.
  • 在Android中读取广告包(Read advertisement packet in Android)
    问题 我正在研究一个 BLE 传感器,它是广告制造商特定的数据。 是否有任何示例代码演示如何在 Android 中接收广告数据包并解析其有效负载? 回答1 这就是我要找的: BLE 扫描 API BluetoothAdapter.startLeScan(ScanCallback) 需要扫描结果的回调函数。 该方法需要如下所示: private BluetoothAdapter.LeScanCallback ScanCallback = new BluetoothAdapter.LeScanCallback()onLeScan(final BluetoothDevice device, int rssi, final byte[] scanRecord) {...} scanRecord 变量是一个字节数组,其中包含广告数据包负载。 根据 BLE 规范,有效载荷的结构非常简单,如下所示: 数据包最长可达 47 个字节,包括: 1 字节序言 4字节访问地址 2-39 字节广告 channelPDU 3 字节 CRC 对于广告通信通道,访问地址始终为 0x8E89BED6。 PDU 又具有自己的标头(2 个字节:有效载荷的大小及其类型——设备是否支持连接等)和实际有效载荷(最多 37 个字节)。 最后,payload的前6个字节是设备的MAC地址,实际信息最多可以有31个字节。
  • iBeacon 的 UUID 在不同的设备上是不同的(UUIDs of iBeacons are different on different devices)
    问题 我正在开发一个将使用 iBeacons 进行室内导航的应用程序,我发现函数locationManager:rangingBeaconsDidFailForRegion:withError:被调用的速率不够高,所以我要添加来自 CoreBluetooth 的centralManager:didDiscoverPeripheral:advertisementData:RSSI:的 RSSI 数据centralManager:didDiscoverPeripheral:advertisementData:RSSI: 。 我发现了一个奇怪的事实:当我使用 CoreLocation 收听 iBeacon 并记录外围设备 ID 时: - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI { NSLog(@"%@, RSSI: %@", peripheral, RSSI); 每个信标在不同设备上报告有不同的 UUID: A25804BD-D77A-5004-4C2C-301D996C7367 - my
  • iBeacon 的安全性如何? [关闭](How secure is iBeacon? [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 3年前关闭。 改进这个问题 iBeacon 是一项很有前途的新技术。 但它有多安全? 启用加密时,蓝牙低功耗 (BLE) 可以是安全的。 然而,这只是在建立通信时的情况。 但是 iBeacon 框架并不意味着允许设备之间的通信。 甚至无法通过 iBeacon 框架进行通信(然后应该使用 CoreBluetooth)。 iBeacon 只能做广告(数据)。 但是这些广告数据包是安全的还是对公众开放的? 我缺少有关 iBeacon 的更详细(技术)报告。 另一件不太清楚的事情:谁开始“说话”? 是广告 iBeacon 设备还是监控应用程序/设备。 广告 iBeacon 设备是否一直在做广告? 回答1 安全完全取决于您。 iBeacon 是安全的,因为它们是非常简单的设备,除了传输由 3 部分组成的标识符(和发射机功率测量)之外什么都不做。 他们总是在做广告,除非你想方设法阻止他们。 任何人都可以看到这个标识符,所以你最好不要指望保密! 例如,上周,我去了华盛顿特区的 Apple Store,并使用我的 Android iBeacon Locate 应用程序找出了 Apple Store 入口附近的 iBeacon
  • 在 C# 中为 iBeacon adsmet 设置 BluetoothLEAdvertisement.Flags(setting the BluetoothLEAdvertisement.Flags in C# for iBeacon advertisemet)
    问题 MS 提供了发送和接收低功耗蓝牙广告的示例。 我看到了这个对分解 iBeacon 数据包非常有用的答案。 还有一个将 BluetoothLEAdvertisement.ManufacturerData 设置为 ibeacon 标准的示例。 请问如何设置BluetoothLEAdvertisement的Flags? 例如将值设置为:02-01-06 谢谢 编辑1:这是代码: using System; using System.Management; using System.Text.RegularExpressions; using Windows.Devices.Bluetooth.Advertisement; using System.Runtime.InteropServices.WindowsRuntime; namespace BLE_iBeacon { class IBeacon { static void Main() { Console.WriteLine("Advertising as iBeacon. Press Enter to exit"); // Create and initialize a new publisher instance. BluetoothLEAdvertisementPublisher publisher = new
  • setting the BluetoothLEAdvertisement.Flags in C# for iBeacon advertisemet
    MS provided samples to send and receive Bluetooth Low Energy advertisements. I saw this very helpful answer for breaking down the iBeacon packet. There's also an example for setting BluetoothLEAdvertisement.ManufacturerData as the ibeacon standards. May I ask how can I set the Flags of the BluetoothLEAdvertisement? For example set the value to: 02-01-06 Thanks Edit 1: Here's the code: using System; using System.Management; using System.Text.RegularExpressions; using Windows.Devices.Bluetooth.Advertisement; using System.Runtime.InteropServices.WindowsRuntime; namespace BLE_iBeacon { class
  • 使用 iOS 获取低功耗蓝牙扫描响应数据(Obtaining Bluetooth LE scan response data with iOS)
    问题 我正在使用低功耗蓝牙设备,我想知道是否可以在不连接的情况下使用 iOS 和 Core 蓝牙读取广告的扫描响应数据。 据我了解,在读取一个广告包后,您可以以 31 字节扫描响应的格式从外设请求附加数据。 我知道Core Bluetooth 建议,如果广告包已满,您可以将本地名称放在扫描响应包中,但是它可以让您看到整个包吗? 回答1 是的,只要不是 iBeacon 广告,您就可以使用CoreBluetooth读取 BLE 广告的完整制造商数据或服务数据字节。 如果是 iBeacon 广告, CoreBluetooth将阻止您查看字节。 你使用的回调如下: - (void) centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 原始服务数据或制造商数据字节将出现在NSDictionary *advertisementData 。 但是它们持有这些数据的密钥将被 iBeacons 的操作系统删除。 这是您在回调中的NSDictionary中获得的示例。 此示例用于检测 AltBeacon 广告(开源信标标准)
  • 结合 iBeacon 蓝牙低功耗与 Android 4.3(Combine iBeacon bluetooth low energy with Android 4.3)
    问题 我正在寻找一种从 Android 设备检测 iBeacon(iOS 7.0 功能)的方法。 我阅读了 Android 文档,其中 iBeacon 似乎是某种发送其位置的 GATT 服务器。 虽然 Android 文档说我不应该轮询这些数据,但对于检测来说,这将是必要的。 我用谷歌搜索了很多,但这个话题很新(我什至创建了一个新标签 ibeacon),所以如果我能从 iOS 世界获得一些描述实现的资源链接,我会很高兴。 另外,如果有一些我还没有找到的 Android 库会很好。 回答1 编辑:下面的库已移至此处: https://github.com/AltBeacon/android-beacon-library 我已将 iOS7 iBeacon SDK 移植到 Android,并且能够查看标准 iBeacon 并估计它们的范围。 该代码可在此处获得: https://github.com/RadiusNetworks/android-ibeacon-service 为此,您需要引入低功耗蓝牙 API 的 Android 4.3。 您还需要具有低功耗蓝牙芯片组的设备。 如果您不想使用上面的完整库,您可以推出自己的库。 iBeacons 每秒简单地传输一次 BLE 广告,该广告以已知的字节序列开始。 您只需告诉 Android 进行一次 BLE 扫描,获取每个广告,然后查找以已知
  • iBeacon“远”,“近”和“立即”的标称距离是多少?(What are the nominal distances for iBeacon “Far”, “Near”, and “Immediate”)
    问题 我一直在使用iOS 7中新的iBeacon API将iOS设备用作广播者和接收者。 文档没有详细介绍接收设备应看到每个接近指示器的距离,并专门将它们称为“相对”。 在使用演示应用进行实验时,我观察到了这些距离(iPhone ==接收器,iPad ==广播器): 远-50英尺? 近-2-3英尺 立即-2英寸 这些对我来说似乎很小,也许在CLBeaconRegion类引用中有一个提示,它使您可以在1m之外指定设备的信号强度。 pheralDataWithMeasuredPower: 检索可用于将当前设备作为信标发布的数据。 参数实测功率设备的接收信号强度指示器(RSSI)值(以分贝为单位)。 该值表示从一米远处测得的信标强度,并在测距期间使用。 指定nil以使用设备的默认值。 我的业余校准得出-60,我对其进行了设置并重新测试: 远-几百英尺 近-〜50英尺 立即-1米(略小) 根据Apple的说法,第二次测试的结果是否在“理想”范围内? 它们确实与我在第一次测试中遇到的“默认”设置相去甚远。 还是我应该根据自己的需要考虑这些范围“可校准”? 回答1 根据我对API的了解,实际距离永远无法保证,您不应将读数视为准确的测量结果。 接近度用于确定不同信标之间的相对距离,以便您可以根据应用程序要求进行相应响应。 话虽如此,Apple肯定在其文档中画了一个灰色区域。
  • Understanding iBeacon data : the power field and other bytes
    I am new to the Bluetooth system and I am trying to understand the data used for the new Apple's technology : iBeacon. There is already some nice answers which explain how it works and I have been reading everything I could find (especially the Bluetooth Specification). Still, I am missing some points and I will go for an example first : (I am using the Set Advertising Data Command, it misses here the hcitool cmd before the OGF) 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 C5 6D B5 DF FB 48 D2 B0 60 D0 F5 A7 10 96 E0 00 00 00 00 C5 00 I will list here what I didn't understand or find
  • iBeacons:如何获得广播的信标功率(txPower)(iBeacons: how to get broadcasted beacon power (txPower))
    问题 iBeacon 似乎广播了他们的 txPower 参数(报告 1 米距离的 RSSI 功率),该参数用于计算beacon.accuracy和beacon.proximity属性(可以在此处找到 iBeacon 广告包的详细信息)。 但是, CLBeacon类似乎没有 txPower 的属性。 有没有办法可以使用 Core Location 框架获得 txPower,或者我需要进入 Core Bluetooth? 我需要这个的原因是我想尝试自定义信标精度/接近度计算,以实现非常快速的信标即时范围发现。 在这种情况下,从accuracy反向计算 txPower 是没有帮助的。 回答1 不幸的是,您无法使用CoreLocation或CoreBluetooth以编程方式获得此值。 Apple 使用CoreBluetooth阻止对所有 iBeacon 数据的访问(请参阅我在此处的细分。)与CoreLocation类似,正如您所见,它根本不会在CLBeacon类中公开。 既然你说你不能做反向计算,那么我能想到的唯一其他方法是: 使用 Android、OSX Mavericks 或 Linux 设备,它们对读取此字段没有此类限制。 在您的 iOS 应用程序中创建所有 iBeacons 的查找表(具有唯一的 UUID/主要/次要值与它们的 txPower 值) 上面的选项 2