课程表

HomeKit课程

工具箱
速查手册

用户管理

当前位置:免费教程 » 移动开发 » HomeKit

创建home的用户是该home的管理员,可以执行所有操作,包括添加一个客人用户到home。任何管理员添加到这个home的用户(HMUser)都有一个有限的权限。客人不能更改家庭的布局,但是可以执行下面的动作:

  • 识别智能电器

  • 读写特性

  • 观察特性值变化

  • 执行动作集

比如,一个家庭的户主可以创建一个home布局并向其中添加家庭成员。每个家庭成员必须拥有一个iOS设备和Apple ID以及相关的iCloud账户。iCloud需要个人输入的Apple ID和户主提供的Apple ID相吻合,以便让他们访问这个home。考虑到隐私问题,Apple ID对你的App是不可见的。

管理员需要遵从以下步骤来添加一个客人到home中:

1. 管理员调用一个动作将客人添加到home中。

2. 你的App调用addUserWithCompletionHandler:异步方法。

3. HomeKit展示一个对话框,要求输入客人的Apple ID。

4. 用户输入客人的Apple ID。

5. 在完成回调中返回一个新的用户。

6. 你的App展示客人的名字。

添加一个客人到home,需要在客人的iOS设备上做以下操作:

1. 用户在iCloud偏好设置中输入iCloud凭证(Apple ID和密码)。

2. 用户启动你的App。

3. 你的App通过home manager object获得一个home集合。

4. 如果iCloud的凭证和管理员输入的Apple ID相同,那么管理员的home将会出现在homes属性中。

客人执行的操作可能会失败。如果一个异步方法中出现HMErrorCodeInsufficientPrivileges错误码的话,这就意味着用户没有足够的权限来执行动作-也许这个用户只是客人,而不是管理员。

为了测试你的App是否正确处理了客人用户,请阅读Testting Multiple iOS Devices and Users

添加和移除用户

为了添加一个客人用户到home,请使用addUserWithCompletionHandler:异步方法。

  1. [self.home addUserWithCompletionHandler:^(HMUser *user, NSError *error) {
  2. if (error == nil) {
  3. // Successfully added a user
  4. }
  5. else {
  6. // Unable to add a user
  7. } }];

想要移除home中的用户,请使用HMHome类的removeUser:completionHandler:方法。

通过实现HMHomeDelegate协议中的home:didAddUser:home:didRemoveUser:协议方法检查新添加和移除的用户并更新视图。关于如何创建一个delegate,请阅读Observing Changes to Individual Homes

获得用户名

出于隐私的考虑,你的app对用户名只有读得权限,并不能读写用户的Apple ID。使用HMHome对象的users属性来获取用户。使用HMUser类的name属性来获取用户名。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号