Доступ к Apple Music

Я хочу получить доступ к музыке Apple, поэтому я пишу

MPMediaQuery *query = [MPMediaQuery songsQuery];

Оповещение автоматически выскакивает с сообщением для доступа. Теперь я хочу знать, когда пользователь предоставляет или отказывает в доступе, как CLLocationManager метод делегата didChangeAuthorizationStatus, Является ли это возможным?

3 ответа

Решение

Я нашел ответ на свой вопрос. В ios 9.3 доступны два метода

    • (MPMediaLibraryAuthorizationStatus) authorizationStatus
    • (void) requestAuthorization: (void (^) (MPMediaLibraryAuthorizationStatus status)) handler // Вызывает обратный вызов при изменении статуса авторизации.

Я полагаю, что это есть в вашем info.plist...Apple переключила многие (если не все) запросы на доступ непосредственно в plist.

Теперь я хочу знать, когда пользователь предоставляет или отказывает в доступе

Там нет обратного вызова / уведомления только потому, что пользователь меняет доступ. Однако это может произойти только тогда, когда ваше приложение находится в фоновом режиме, поэтому все, что вам нужно сделать, это проверять свой статус доступа каждый раз, когда ваше приложение заранее установлено или активировано.

Например, вот как я делаю это в одном из моих приложений (этот код находится в контроллере корневого представления, который всегда присутствует):

override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActive), name: .UIApplicationDidBecomeActive, object: nil)
}

func didBecomeActive(_ n:Notification) {
    self.checkForMusicLibraryAccess() 
    // ... only proceed if we have access
}
Другие вопросы по тегам