Я хочу активировать iOS7, чтобы запросить у пользователей разрешение на использование учетной записи Bluetooth и Twitter
Это несколько отстает от того, что спрашивает большинство людей. Я хочу преднамеренно вызвать диалоговое окно, запрашивая у пользователей разрешение на:
Подключайтесь к устройствам Bluetooth, даже в автономном режиме.Получите доступ к iOS-аккаунту Twitter.У меня уже есть похожий диалог для локации, работающей нормально. Я делаю это потому, что хочу сделать процесс запроса разрешения более мягким, например, в период расцвета, показывая экран приветствия, объясняющий, зачем приложению нужен этот сервис, а затем, когда пользователь нажимает кнопку ОК, инициируя запрос и вызывая диалоговое окно.
Я уже попробовал некоторые вещи. Для Twitter я попробовал следующее:
- (void)triggerTwitterApprovalWithCompletion:(void (^)(BOOL, NSError *))completion {
self.accountStore = [[ACAccountStore alloc] init]; //setup as a property.
ACAccountType *twitterAccountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[self.accountStore requestAccessToAccountsWithType:twitterAccountType options:nil completion:^(BOOL granted, NSError *error) { //completion handling is on indeterminate queue so I force main queue inside
dispatch_async(dispatch_get_main_queue(), ^{
completion(granted, error); //triggers displaying the next screen, working
});
}];
}
Но хотя разрешение дано, оно является автоматическим и не является результатом того, что пользователю предоставляют диалоговое окно и утверждают его.
С версией Bluetooth я еще не нашел код, который бы его активировал. И документы, и руководства по программированию относительно спокойны в вопросе запроса разрешений. Единственная ссылка, которую я могу найти, это то, что при наличии ключа plist дляbluetooth-peripheral
пользователю будет предложено автоматически при запуске приложения. Это слишком рано, чтобы быть полезным.