Я пытаюсь создать приложение, которое делает фотографию с помощью функции takePicture () из UIImagepickerController () каждый раз, когда я получаю сигнал LE Bluetooth как удаленный селфи-стик.
Я запрограммировал CoreBluetooh в AppDelegateкоторый работает нормально, и я могу получить строку типа сигнала Bluetooth "c" несколько раз без проблем, независимо от того, какой вид я нахожусь в приложении.
Затем я создал ViewController с вызовом кнопки "CameraButton" для того, чтобычтобы открыть камеру следующим образом:
@IBAction func CameraButton(_ sender: UIButton) {
ImagePicker.delegate = self
ImagePicker.sourceType = .camera
ImagePicker.showsCameraControls = false
self.present(ImagePicker, animated: true, completion: nil)
}
Эта кнопка работает нормально и открывает камеру, но мне не удается отправить команду ImagePicker.takePicture () из AppDelegate каждый раз, когда я получаю "c"Bluetooth не проблема, так как я печатаю «Значение Bluetooth отправлено».
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
let stringValue = String(data: characteristic.value!, encoding: String.Encoding.utf8)!
if (stringValue == "c") {
print("bluetooth value sent")
ImagePicker.takePicture()
}
}
До сих пор мне удалось создать картинку, объявив логическое значение внутри периферийного устройства func, а затем функцию ImagePicker.takePicture ().перемещается в код кнопки с помощью оператора if ().Но это просто делает ОДНУ картинку, и я хочу, чтобы она могла продолжать делать снимки.Что вы рекомендуете мне делать?Мои идеи - либо переместить ImagePicker.takePicture () на периферийное устройство func, как объяснено, либо сделать оператор while () внутри кнопки, которая мешает Bluetooth работать в фоновом режиме ...
Спасибо!