此问题与Xamarin.iOS相关。多天来,我一直在尝试让MPMediaLibrary.Notifications.ObserveDidChange正常工作,但没有成功。我几乎什么都试过了。由于怀疑Objective-C绑定有什么不好的地方,我也尝试了使用消息传递API直接调用objc。最后,我构建了一个原生库,并使用纯objective-c应用程序对其进行了测试,以确保其正常工作。具有Objective-C的本机运行没有问题。但是,当与Xamarin.iOS一起使用时,同一个库不会获得MPMediaLibraryDidChangeNotification。我已经在Native库中创建了内置选择器等,这样我就可以不带参数地调用'C‘函数,它可以与objective-c应用程序一起使用。然而,当与Xamarin一起使用时,同样的情况就不起作用了。我已经注意到了调用beginGeneratingLibraryChangeNotifications()。
有些人可能会怀疑我的选择器/delgate没有被调用,因为使用错误。但是,除了这个通知之外,其他所有通知都可以调用我的选择器。所以语法不是问题,我想。
经过所有的努力,我认为Xamarin设置中有一些错误,这阻止了我获得MPMediaLibraryDidChangeNotification。我真的不知道它到底是什么。所以我的问题是-你们能收到这个通知吗?
我的测试手机- iPhone6-8.0.2,Xamarin Studio版本5.5.3 (build 6)安装UUID: d84b8c6d-f992-4f19-8a35-c14bcd08420e运行时: Mono 3.10.0 ((detached/e204655) GTK+ 2.24.23 (罗利主题)软件包版本: 310000023苹果开发人员工具Xcode6.1 (6604) Build 6A1052d Xamarin.iOS版本: 8.4.0.16 (独立版) Hash: 80e9ff7分支:构建日期:310000023-10-22 15:09:12-0400
谢谢,维内
发布于 2014-11-08 20:53:13
为了记录起见,我正在张贴答案。
自64位过渡以来,32位应用程序的MediaLibrary更改通知已停止。如果您的应用程序是为64位iOS构建的,那么一切都很好。但是,具有32位应用程序的64位设备将不会收到这些通知。我已经在iPhone6上进行了彻底的测试。所以我认为这是iOS的缺陷,苹果需要纠正它。App Store上的所有音乐播放器应用程序都无法再更新库,因为它们是32位的。
对于Xamarin用户,请使用统一API提供适当的通知支持。
https://stackoverflow.com/questions/26814983
复制相似问题