iOS7设备能否作为iBeacon使用?

15

iOS7设备能否作为并检测其他iOS7设备进入其范围?那些其他iOS7设备需要开启蓝牙吗?

答案是可以。在iOS7中,苹果公司允许将iOS7设备配置为iBeacon,这意味着它们可以用于检测其他iOS7设备的近程。另外,其他iOS7设备需要开启蓝牙才能被检测到。

6个回答

17

具备蓝牙低功耗功能的iOS设备可以充当iBeacon。

请查看https://developer.apple.com/downloads/index.action?name=WWDC%202013#上的AirLocate示例代码。

作为iBeacon并不能反馈检测到其范围内设备的信息,所以您需要自行实现。也就是说,您需要让检测到iBeacon的设备通过其他方式告诉iBeacon他们已经发现了它。


1
谢谢。还有一个问题:作为接收器的设备,它需要运行应用程序(检查iBeacon的应用程序)吗?或者当进入iBeacon范围时,可以关闭或置于后台的应用程序也会收到通知吗? - Alex
1
是的,请查看CLLocationManager的文档。在iOS中,您使用位置管理器注册的区域会在应用程序启动之间保留。如果在您的iOS应用程序未运行时发生区域交叉,则系统会自动将其唤醒(或重新启动)以便在后台处理事件。 - Mike Pollard
1
@MikePollard,你尝试过在iBeacon区域中使用吗?当应用程序被从多任务强制关闭时,我无法使其正常工作。如果应用程序在后台运行(即使它已经在后台运行了很长时间并且操作系统已经关闭了它),它也可以正常工作,但是如果它被强制关闭,则无法正常工作。 - Sam
@MikePollard 很不幸,链接已经失效了,您能否建议其他地方寻找示例(最好是用Swift)?谢谢! - DataGreed
@MikePollard iOS设备可以在后台作为iBeacon吗? - daniel kilinskas

7

是的,iOS设备可以作为信标使用,从iPhone 4s及以上版本开始(需要蓝牙4.0)。

您可以通过将[CLBeaconRegion peripheralDataWithMeasuredPower:]中的字典传递给[CBPeripheralManager startAdvertising:]来发布信标。

发布信标不会给您任何设备的反馈,您需要扫描其他发布信标的设备。

至于后台运行,您无法在后台发布信标,您的应用程序需要在前台运行。扫描可在后台进行。


3
是的,iOS7设备可以充当iBeacon。 如果您在所有手机上安装了应用程序,并编写了一个web服务,那么您可以完全按照您建议的做法来操作。这将允许手机A在附近时看到手机B和C:
  1. 手机A上的应用程序充当iBeacon,广告其存在。
  2. 手机B和C看到此iBeacon,唤醒您的应用程序,向您的Web服务发出调用,报告他们都看到了手机A的传输。
  3. 手机A上的应用程序查询此Web服务,该服务返回查看手机A的电话列表。 在此示例中,列表包括手机B和C。 您的应用程序使用此列表更新其显示。
所有手机都需要启用蓝牙LE,并已安装您的应用程序。 他们还需要互联网连接以调用Web服务。

1
仅供娱乐 - 这里有一个快速开始使用iBeacons的方法 https://github.com/manishnath/iBeaconCenter/tree/master - manishnath
1
这是我找到的又一个好例子,请查看,https://github.com/nicktoumpelis/HiBeacons - Mehul Thakkar

1
如果您不打算使用iBeacons,此项目将使用蓝牙低功耗技术在附近的手机之间共享一组ID- SimpleShare
您可以为每个手机的用户设置一个ID,使用SimpleShare项目通过蓝牙低功耗技术在手机之间共享它们(即使在后台模式下),然后查询Web服务以查找有关该ID用户的更多信息。

0

如上所述,只要具备蓝牙低功耗技术,iOS 7设备就可以作为iBeacon。

要使用iBeacon,您需要iOS 7或更高版本、打开蓝牙并拥有兼容的iOS设备:

  • iPhone 4s或更高版本
  • iPad(第三代)或更高版本
  • iPad mini或更高版本
  • iPod touch(第五代)或更高版本。

http://support.apple.com/kb/HT6048


0
之前的回答中没有明确提到的一点是,为了使发布工作正常运行(例如在David的答案Phone A中),启动发布的应用程序必须处于前台。
从苹果文档中可以看到:

当您的应用程序在后台时,本地名称不会被广告化,并且所有服务UUID都放置在溢出区域。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接