Как получить статус настройки конфиденциальности Bluetooth в iOS6

Вопрос о периферийном Bluetooth-подключении iOS6.

в info.plist, если я добавлю UIBackgroundModes bluetooth-peripheral, при запуске приложения он запрашивает разрешение в первый раз.

appname хотел бы сделать данные доступными для ближайших устройств Bluetooth, даже если вы не используете приложение"appname" будет нравится делать данные доступными для ближайших Bluetooth-устройств, даже если вы не используете приложение

если я отклоняю (не разрешаю) запрос, настройка - конфиденциальность - Общий доступ по Bluetooth - «Имя приложения» переключается на «ВЫКЛ»;

Я настроен прослушивать CBPeripheralManagerDelegate, чтобы узнать, могу ли я, но он всегда возвращает «ON», даже если я отклоняю запрос. (это также имеет смысл, потому что он «включен» перед тем, как перейти в фоновый режим)

- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral{
NSLog(@"%s",__func__);
NSLog(@"%@",[peripheral description]);
NSString *state = nil;
switch (peripheral.state) {
    case CBPeripheralManagerStateResetting:
        state = @"resetting"; break;
    case CBPeripheralManagerStateUnsupported:
        state = @"unsupported"; break;
    case CBPeripheralManagerStateUnauthorized:
        state = @"unauthorized"; break;
    case CBPeripheralManagerStatePoweredOff:
        state = @"off"; break;
    case CBPeripheralManagerStatePoweredOn:
        state = @"on"; break;
    default:
        state = @"unknown"; break;
}
NSLog(@"peripheralManagerDidUpdateState:%@ to %@ (%d)", peripheral, state, peripheral.state);

}

Я вижу, что CBPeripheralManagerStateUnauthorized выглядит так, как будто он показывает статус отказа, но я не могу получить этот статус, даже если я отклонил запрос.

Вопрос: «Есть ли способ узнать, что пользователю отказано в фоновом доступе?»


person Tomohisa Takaoka    schedule 07.12.2012    source источник


Ответы (1)


CBPeripheralManager имеет свойство authorizationStatus, которое возвращает эту информацию. (ссылка на документацию Apple).

+ (CBPeripheralAuthorizationStatus)authorizationStatus

«Возвращает статус авторизации приложения для обмена данными в фоновом режиме. Значение, указывающее, разрешено ли приложению обмениваться данными с помощью служб Bluetooth в фоновом режиме. Список возможных значений см. в разделе «Статус авторизации диспетчера периферийных устройств». "

person cbowns    schedule 24.10.2013
comment
Спасибо. Я искал эпоху iOS 6, но, наконец, это было реализовано на iOS 7. - person Tomohisa Takaoka; 24.10.2013