如何让应用程序iPhone/iPad完全忘记媒体授权状态?
How Can I Make the iPhone/iPad Completely Forget Media Authorization Status for an App?
这是交易:
我正在编写一个应用程序来播放用户库中的音乐。我正在使用 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。
这给了我 2 个问题:
1)上面我做的对吗?
2) 如何强制系统忘记我的应用程序曾经存在过?
好的。我想出了一种方法来做到这一点。烦人,但它有效。
如果删除应用程序,然后关闭并重新启动设备,状态将重置。
这是交易:
我正在编写一个应用程序来播放用户库中的音乐。我正在使用 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。
这给了我 2 个问题:
1)上面我做的对吗?
2) 如何强制系统忘记我的应用程序曾经存在过?
好的。我想出了一种方法来做到这一点。烦人,但它有效。
如果删除应用程序,然后关闭并重新启动设备,状态将重置。