Обнаружение устройств, подключенных к iPhone через порт lightning

#ios #swift #iphone

#iOS #swift #iPhone

Вопрос:

У меня есть старая карта памяти (или инструмент, который работает так же) со старой файловой системой (fat12).На этом устройстве есть несколько файлов, сохраненных в формате pdf, png или любом другом, не имеет значения. Целью приложения должно быть считывание всех файлов с устройства, подключенного через адаптер порта lightning, загрузка файлов и сохранение их, чтобы либо просмотреть их через приложение, либо загрузить их куда-нибудь. (Аналогично встроенному приложению files от Apple).

Первая проблема, с которой я сталкиваюсь, — как мне проверить, подключено ли что-то к моему iPhone? Я видел поток, в котором предлагается проверить, заряжается ли телефон, что, к сожалению, не работает, потому что gadged не заряжает телефон, пока он подключен.

Один из подходов, который был опробован, заключался в работе с UIDocumentPicker. Это сработало, поскольку я мог получить доступ к файлам с usb, но проблема здесь в том, что я не хочу, чтобы пользователь мог просматривать все файлы на телефоне, только через файлы, подключенные к адаптеру lightning, и это должно происходить автоматически, когда пользователь подключает телефон и нажимает на кнопку.Кнопка «Загрузить файлы».

У меня не так много кода, который я могу показать, только четыре строки касаются UIDocumentPicker:

     @IBAction func getFilesButtonClicked(_ sender: Any) {
    let documentPicker =
        UIDocumentPickerViewController(documentTypes: ["public.data"],
                                       in: .open)
    documentPicker.delegate = self
    documentPicker.modalPresentationStyle = .fullScreen
    self.present(documentPicker, animated: true, completion: nil)
}
  

Комментарии:

1. Приложение не может напрямую обращаться к устройству через порт lightning, если устройство не сертифицировано mfi и не связано с вашим приложением. Вы должны использовать контроллер просмотра средства выбора документов, или пользователь может использовать приложение files.

Ответ №1:

Существует внешняя среда для аксессуаров, в руководстве по программированию указано, что можно получать уведомления о подключении или отключении аксессуара.