У меня есть приложение iOS с использованием HomeKit, и мне нужно проверить, может ли приложение получить доступ к HomeKit Store. Как я заметил, в любом случае будет вызван homeManagerDidUpdateHomes
. Как проверить разрешение на покупку HomeKit?HomeKit: Проверить разрешение
3
A
ответ
0
Редактировать: Это, по-видимому, больше не работает. К сожалению, я больше не занимаюсь разработкой HK. См. Комментарий @ windwalker ниже для некоторой информации.
[[HMHomeManager alloc] init]
будет возвращать ноль, если у вас нет доступа к дому. Другие HomeKit inits также возвратят нуль, это только тот, который я проверяю, так как это первое, что мы попробуем после загрузки приложения.
1
У меня есть хак для этой проблемы, которая работает для меня:
Init HMHomeManager
self.manager = [[HMHomeManager alloc] init];
self.manager.delegate = self;
Проверить частной собственности в
-(void)homeManagerDidUpdateHomes:(HMHomeManager *)manager {
//HACK to check that the application does not have HomeKit permission
NSNumber *private = [self.manager valueForKey:@"_didUpdateHomes"];
if (private && ![private boolValue]) {
//Warning to user
return;
}
// Do other logic
}
Я надеюсь, что Apple, дает нам API для этого в ближайшее время
0
The Swift 4 версия взлома/ответа Владимира.
import UIKit
import HomeKit
class HomeKitAccessViewController: UIViewController {
let manager = HMHomeManager()
override func viewDidLoad() {
super.viewDidLoad()
self.manager.delegate = self
}
}
extension HomeKitAccessViewController: HMHomeManagerDelegate {
func homeManagerDidUpdateHomes(_ manager: HMHomeManager) {
let number = manager.value(forKey: "_didUpdateHomes")
if let num = number, let boolValue = num as? Bool {
if boolValue == true {
print("We got access.")
}else{
print("We don't have access")
}
}
}
}
Смежные вопросы
- 1. Установите пользовательское разрешение для гостевого пользователя для аксессуаров в HomeKit
- 2. Повторная пара HomeKit-аксессуар
- 3. HomeKit Управление базой данных
- 4. Apple HomeKit Тип аксессуара
- 5. Apple HomeKit HMCharacteristics
- 6. Понимание Homekit как разработчика
- 7. HomeKit HMService serviceТип выпуска
- 8. Добавление HMHome с HomeKit
- 9. Homekit accessorry simulator подробнее
- 10. Проверить разрешение в HDFS
- 11. Проверить разрешение на таблицу
- 12. Как проверить разрешение изображения
- 13. Проверить разрешение нескольких экранов
- 14. Android: проверить разрешение READ_LOGS
- 15. Проверить разрешение на сеанс?
- 16. Android - Проверить разрешение
- 17. HomeKit HMHome Пользователи устарели iOS9
- 18. добавить ошибка homeKit аксессуар предупреждения
- 19. Метод для HMServiceGroup в Homekit
- 20. HomeKit - Удалить аксессуар из комнаты
- 21. HomeKit Выдает Error 77 & 78
- 22. Реализация Homekit на существующей системе
- 23. Идентификация мостового аксессуара в HomeKit
- 24. Как проверить разрешение во фрагменте
- 25. Проверить разрешение на каждой странице
- 26. Проверить разрешение пользователей в css?
- 27. проверить разрешение доступа в топливеphp
- 28. Проверить разрешение микрофона на android
- 29. Как проверить видимое разрешение системы
- 30. Проверить разрешение на Rails View
не работает для меня. Любое другое решение? – SRI
Не работает (по крайней мере, в ios 10). Вы можете проверить свойство «homes» для HMHomeManager. Если есть хотя бы один HMHome, у вас есть разрешение, но если дома нет, это может быть: Вы никогда не спрашивали пользователя Пользователь отказался от разрешения У вас есть разрешение, но у вас на самом деле нет дома в вашем домеките окружающая среда –