Управление пользователями
Пользователь, создающий дом, является администратором для дома и может выполнить все операции включая добавление гостевых пользователей в дом. Любой пользователь (HMUser) то, что администратор добавляет к дому, ограничило полномочия. Гости не могут изменить домашнее расположение всегда, но могут выполнить эти типы действий:
Идентифицируйте аксессуары
Считайте и запишите характеристические значения
Наблюдайте изменения в характеристических значениях
Выполните наборы действия
Например, глава домашнего хозяйства создает домашнее расположение и добавляет членов семьи к дому. У каждого члена семьи должны быть персональное устройство на iOS и Apple ID со связанной учетной записью iCloud. Учетные данные iCloud, что члены семьи вводят в свои устройства на iOS, должны соответствовать Apple ID, предоставленный главой домашнего хозяйства для них для доступа к дому. По причинам конфиденциальности Apple ID скрыт от Вашего приложения.
Добавление гостя в дом требует следующих действий с устройством на iOS администратора:
Администраторский пользователь вызывает действие для добавления гостя к дому.
Ваше приложение вызывает
addUserWithCompletionHandler:асинхронный метод.HomeKit выводит на экран диалоговое окно, запрашивающее Apple гостя ID.
Пользователь вводит Apple гостя ID в диалоговое окно.
Обработчик завершения возвращает новый пользовательский объект.
Ваши отображения приложения имя гостя.
Добавление гостя в дом требует следующих действий с устройством на iOS гостя:
Пользователь вводит учетные данные iCloud пользователя (Apple ID и пароль) в предпочтениях iCloud.
Пользователь запускает Ваше приложение.
Ваше приложение получает набор домов от домашнего объекта менеджера.
Если учетные данные iCloud соответствуют Apple идентификатор, введенный администратором, дом администратора появляется в
homesсвойство.
Некоторые операции, выполняемые гостем, могут перестать работать. Если асинхронное сообщение к HomeKit перестало работать с кодом ошибки HMErrorCodeInsufficientPrivileges, пользователю не разрешают выполнить действие — пользователь является, вероятно, гостем, не администратором.
Чтобы протестировать, обрабатывает ли Ваше приложение гостевых пользователей правильно, считайте Тестирующие Многократные устройства на iOS и Пользователей.
Добавление и удаление пользователей
Для добавления гостевого пользователя к дому используйте addUserWithCompletionHandler: асинхронный метод.
[self.home addUserWithCompletionHandler:^(HMUser *user, NSError *error) { |
if (error == nil) { |
// Successfully added a user |
} |
else { |
// Unable to add a user |
} |
}]; |
Для удаления пользователя из дома используйте removeUser:completionHandler: метод в HMHome класс.
Реализуйте home:didAddUser: и home:didRemoveUser: методы делегата в HMHomeDelegate протокол для обновления представлений, когда другие приложения добавляют и удаляют пользователей. Для создания домашнего делегата считайте Изменения Наблюдения в Отдельных Домах.
Получение имен пользователей
По причинам конфиденциальности Ваше приложение имеет доступ только для чтения к имени пользователя, не доступ для чтения или доступ для записи к Apple ID пользователя. Используйте users свойство в HMHome класс для получения пользователей дома. Используйте name свойство HMUser класс для получения имени пользователя.