iOS之HomeKit

1、HomeKit

homekit这个框架是用来沟通和控制我们的家庭智能硬件的。这些智能硬件都是支持HomeKit Accessory Protocol的。homekit应用程序可以让用户去发现并且配置家庭里的这些兼容硬件的。它支持远程访问,支持多个用户和多个用户设备!

2、创建HomeKit之前的工作

  1. Xcode创建一个APP Demo
  2. 启用homekit,在控制面板里找到homekit,并打开开关。如图所示这里写图片描述
  3. .如果没有智能硬件设备的话可以去下载一个模拟器。点击上上图中的Download homekit simulator会跳转到苹果网站的下载界面
    这里写图片描述
  4. 点击下载图中的Hardware IO Tools(下载for7.3的就行)。这里有好多工具,找到homekit模拟器(就是黄色的那个)拖到你的应用程序中,等到测试APP的时候,双击打开就可以使用了
    这里写图片描述

3、相关的类的概念

  1. home(HMhome):homeKit允许用户有多个home,每一个home代表一个有智能设备的住所。用户拥有Home的数据并可通过自己的任何一台iOS设备进行访问。在用户的所有home中,会有一个常用的home,即为primary home。我们可以通过创建一个HMHomeManager对象去管理home。使用这个HMHomeManager对象的访问home、room、配件、服务以及其他HomeKit对象。
  2. room(HMroom):每个Home一般有多个room,并且每个room一般会有多个智能配件。在home中,每个房间是独立的room,并具有一个有意义的名字,这个名字是唯一的。
  3. accessory(HMAccessory):一个accessory代表一个家庭中的自动化设备,例如智能灯具
  4. sevice(HMService):一个sevice是accessory提供的一个实际服务,例如打开或者关闭灯泡,这里和蓝牙开发中的服务的意义基本是一样的。每个sevice中也会有多个特征(characteristic)

上码:

@implementation MyHomeKit

- (void)initMyHomeKit {
    self.homeManager = [[HMHomeManager alloc] init];
    self.homeManager.delegate = self;
}

#pragma mark  这些都是home的操作方法
- (void)addHome:(NSString *)homeName {
    [self.homeManager addHomeWithName:homeName completionHandler:^(HMHome * _Nullable home, NSError * _Nullable error) {
        NSLog(@"%@", homeName);
    }];
}

- (void)removeHome:(HMHome *)home {
    [self.homeManager removeHome:home completionHandler:^(NSError * _Nullable error) {
        NSLog(@"%@", home);
    }];
}
#pragma mark homeKitManager的四个代理方法

// 其中第一个方法是homeManager初始化之后的回调,我们对数据进行操作的时候,应该再其初始化之后进行。
// 初始化之后我们在其回调方法中可以获取到manager.homes,这是一个数组,里边是用户的全部HMhome对象,我们可以遍历这个数组获取到全部的home,通过home.name得到home的名字。
// 获取所有的home资源
- (void)homeManagerDidUpdateHomes:(HMHomeManager *)manager {
    // 获取到的homes
    NSLog(@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值