如何使iPhone / iPad完全忘记应用程序的媒体授权状态?

时间:2018-11-12 20:18:14

标签: ios swift media-player

这是交易:

我正在编写一个播放用户库中音乐的应用程序。我正在使用MP授权方法,如下所示:

        if .authorized == MPMediaLibrary.authorizationStatus() {    // Already authorized? Head on in!
            if inDisplayWholeScreenThrobber {
                self._showLargeLookupThrobber()
            }
            if let songItems: [MPMediaItemCollection] = MPMediaQuery.songs().collections {
                self._loadSongData(songItems)
                self._selectSong()
                self._hideLargeLookupThrobber()
            }
        } else {    // Can I see your ID, sir?
            MPMediaLibrary.requestAuthorization { [unowned self] status in
                switch status {
                case.authorized:
                    if inDisplayWholeScreenThrobber {
                        self._showLargeLookupThrobber()
                    }
                    if let songItems: [MPMediaItemCollection] = MPMediaQuery.songs().collections {
                        self._loadSongData(songItems)
                        self._selectSong()
                        self._hideLargeLookupThrobber()
                    }

                default:
                    TheBestClockAppDelegate.reportError(heading: "ERROR_HEADER_MEDIA", text: "ERROR_TEXT_MEDIA_PERMISSION_DENIED")
                }
            }
        }

,依此类推。我还会在播放任何存储的URI之前检查授权状态,以防用户改变主意。

问题出在这里

一旦我授予(或拒绝)授权,系统就会记住我的应用程序,并且再也不会询问我。甚至卸载并重新安装该应用程序也会重新唤醒“隐私”面板中的开关。

让我忘记我的唯一方法是更改​​应用程序捆绑包ID。

这给了我两个问题:

1)我在上面正确吗?

2)如何强制系统忘记我的应用程序曾经存在过?

1 个答案:

答案 0 :(得分:0)

好。我想出了一种方法。烦人,但可以。

如果删除该应用,然后关闭并重新启动设备,则状态将重置。