【问题标题】:iOS - Getting Callback On Media Library Access Alert By SystemiOS - 通过系统获取媒体库访问警报的回调
【发布时间】:2016-11-10 04:27:21
【问题描述】:

当用户允许访问媒体库时,我需要在我的应用中重新加载音乐列表,并且我想在用户不允许访问时显示通知。如何获取这两个回调?

为了请求访问,我只是将这一行添加到 info.plist NSAppleMusicUsageDescription

【问题讨论】:

  • 您如何申请访问权限?
  • @rmaddy 我刚刚将它添加到 info.plist NSAppleMusicUsageDescription
  • 我在问你有什么代码会导致出现警报。
  • @rmaddy 抱歉没听明白。这一项 [[MPMediaQuery songQuery] 个项目]

标签: ios


【解决方案1】:

您需要请求访问 MPMediaLibrary 的权限,这是您可以请求的方式

Objective-C

[MPMediaLibrary requestAuthorization:^(MPMediaLibraryAuthorizationStatus authorizationStatus) {
        if ( authorizationStatus == MPMediaLibraryAuthorizationStatusAuthorized ) {
        // Reload your list here
        } else {
        // user did not authorize
} }];

斯威夫特

MPMediaLibrary.requestAuthorization { (status) in
        if status == .authorized {
            // Reload your list here
        } else {
            // user did not authorize
        }
    }

【讨论】:

  • else 需要检查“拒绝”和“受限”。这两种情况应该区别对待。另请注意,警报只会显示一次。
  • 嗨,我刚刚在 viewDidAppear 中添加了你的那段代码。然后我在 if 语句中插入了用于重新加载列表的代码。但是,它不起作用,没有显示警报。
  • 删除该应用程序并重试,因为您之前已为您的音乐库添加了权限,这就是它未显示的原因。
  • @Rajat 如果我允许访问,然后转到设置并禁用它。如何让系统警报再次出现?
  • @VyacheslavBakinkskiy 如果您已禁用它,则无法再次显示系统警报,您必须要求用户仔细检查您的应用程序设置并使用适当的 UX 再次启用它。您还可以将它们重定向到您应用的设置。
猜你喜欢
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多