1

iOS6周辺機器のBluetooth接続について質問です。

info.plist に UIBackgroundModes bluetooth-peripheral を追加すると、アプリの起動時に初めて許可が求められます。

「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 が拒否されたステータスを示しているように見えますが、リクエストを拒否してもこのステータスを取得できません。

質問: 「ユーザーが拒否したバックグラウンド アクセス要求を見つける方法はありますか?」

4

1 に答える 1

2

CBPeripheralManagerauthorizationStatusには、この情報を報告するプロパティがあります。( Apple のドキュメントへのリンク)。

+ (CBPeripheralAuthorizationStatus)authorizationStatus

"バックグラウンド状態でデータを共有するためのアプリの承認ステータスを返します。アプリがバックグラウンドで Bluetooth サービスを使用してデータを共有することを承認されているかどうかを示す値。可能な値のリストについては、「Peripheral Manager の承認ステータス」を参照してください。 "

于 2013-10-24T02:51:50.147 に答える