Управление пользователями
Пользователь, создающий дом, является администратором для дома и может выполнить все операции включая добавление гостевых пользователей в дом. Любой пользователь (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
класс для получения имени пользователя.