Я разрабатываю приложение, которое считывает данные с устройства BLE и отправляет эти данные на брокер MQTT (сервер). Но при входе приложения в фоновый режим отправка данных прекращалась через 3 минуты (я использую фоновые задачи). Как я могу увеличить это время. Или, может быть, существует официальный механизм, который Apple продвигает и не будет отклонять на этапе подтверждения в App Store для чтения данных из BLE и отправки этих данных на сервер в фоновом режиме, который не ограничен по времени?
Моя фоновая задача:
AYBackgroundTask.h
@interface AYBackgroundTask : NSObject
@property (assign) UIBackgroundTaskIdentifier identifier;
@property (strong, nonatomic) UIApplication *application;
+ (void)run:(void(^)(void))handler;
- (void)begin;
- (void)end;
@end
AYBackgroundTask.m
@implementation AYBackgroundTask
+ (void)run:(void(^)(void))handler {
AYBackgroundTask *task = [[AYBackgroundTask alloc] init];
[task begin];
handler();
}
- (void)begin {
self.identifier = [self.applicationn beginBackgroundTaskWithExpirationHandler:^{
[self end];
}];
}
- (void)end {
if (self.identifier != UIBackgroundTaskInvalid) {
[self.application.application endBackgroundTask:self.identifier];
}
self.identifier = UIBackgroundTaskInvalid;
}
@end
Есть тут кто сталкивался с этой проблемой?
С наилучшими пожеланиями,
Антон.