Michael

写写代码,说说人生

您好,我是Michael,欢迎来到我的个人家园。
代码搬运工,目前就职于XX证券,努力修行中。


H5 / Java / Objc / Swift / Vue / RN

我们日常生活中的 iBeacon

  随着低功耗蓝牙的推出,iBeacon 的使用是越来越广泛了,如:微信的附近摇一摇功能,又或者是当你进入大型商场,一些店铺给你推送通知,VR 场景识别等等,这些表示 iBeacon 已经与我们的生活精密相连了。

简介:

  • 概念: iBeacon 是 iOS7 后苹果出的一项新技术,支持蓝牙4.0(或以上)的 iOS 设备,工作方式是低功耗蓝牙(Bluetooth Low Energy),向周围发送自己特有的ID,一个 iBeacon 硬件设备在不做任何处理的情况下一般可使用两三年左右。

  • iBeacon 的形状多种多样,大致如下图。

目前哪些地方有 iBeacon:

  • 1、微信摇一摇:使用微信的人应该都知道微信有一个 周边摇一摇 功能, 使用的就是 iBeacon 技术。 很多餐馆都部有 iBeacon 的点,如果你想验证直接监测微信的 iBeaconUUID:FDA50693-A4E2-4FB1-AFCF-C6EB07647825。
  • 2、走进某个商场时,忽然手机里推出一个通知,也是使用 iBeacon 技术。
  • 3、帝都的地跌站大部分也有微信 UUID 的 iBeacon 发射器,具体是用来做什么的还不是慢清楚。
  • 4、iBeacon 还可实现地理围栏、室内定位等功能。

iBeacon 技术

  Apple的 CoreLocation.frame 里把iBeacon封装成了一个 CLBeacon 类,CLBeacon 大致有下面几个属性组成:MajorMinorproximityrssiaccuracy

开发者如何使用 iBeacopn?:

  • 1、用户需要添加 CoreLocation.framework ,App 才具备定位的功能。
  • 2、App 开发者需要开启定位功能需要配置:在 Xcodeinfo.plist 里面添加 NSLocationAlwaysUsageDescription(允许后台访问位置信息) 或 requestWhenInUseAuthorization(允许使用时访问位置信息) 字段。(iOS7后该添加了该字段应用才会弹出 `是否允许应用访问用户的位置信息)。

创建和注册一个beacon区域

- (void)registerBeaconRegionWithUUID:(NSUUID *)proximityUUID andIdentifier:(NSString *)identifier
{
    CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:identifier];
    
    [manager startMonitoringForRegion:beaconRegion];
}

当接受到 iBeacon 信号时回调 ,beacons 里面装了信号的对象,可能同时出现多个信号。

- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{

}

Note: 苹果iBeacon官方代码例子

iBeacon 硬件设备条件:

  • 用户设备 iOS7 或更新操作系统。
  • 用户蓝牙设备4.0或更新。
  • 用户蓝牙设备必须开启。
  • 用户设备定位服务必须开启,允许应用访问位置信息。

iBeacon 能唤醒应用

  • 前提:App 具备上面使用 iBeacon 的功能,并且允许后台访问位置信息。
  • 现象:App 能被 iBeacon 信号唤醒,即使 App 已经被用户手动杀死掉了,App 也能被 iBeacon 技术唤醒,并且能执行一系列操作。
  • 影响:导致 App 用户在并没有使用 App 的情况下, App 有了长达几个小时的后台使用时长。


转载请注明:Michael的博客 » 点击阅读原文

最近的文章

开发常用工具

工欲善其事必先利其器,选择一些好的工具可以成吨的提高自己的工作效率。个人开发常用工具的收集 cmd Markdown 作业部落出版的Markdown编辑器 RESTClient 一个开源的客户端HTTP调试工具。 lantern 蓝灯,一款开源的翻墙工具。 Charles 青花瓷, 一款HTTP/HTTPS的抓包工具。 Charles 从入门到精通 Sublime 一款强大的IDE,支持Python、JS、JSON格式化等等…更重要的是Sublime...…

工具继续阅读
更早的文章

CocoaPods使用心得

简介本章介绍什么是 CocoaPods ,如何使用 CocoaPods , 以及 CocoaPods 的原理,和使用 CocoaPods 时经常出现的一些问题。Cocoapods 是 OS X 和 iOS 下的一个第三方库管理工具。我们能使用CocoaPods添加被称作 “Pods”的依赖库,并轻松管理它们的版本,CocoaPods会帮我们配置好这些三方库的路径及开发环境,极大的提升了开发者的工作效率。安装CocoaPodsMac下自带ruby,使用ruby的gem命令安装,ruby的软件...…

Cocoapods继续阅读