当应用程序未运行时如何检测iPhone是否已同步

5
我想知道是否有办法在我的应用程序未运行时检测iPhone音乐库是否已更改。
MPMediaLibrary类中有一个lastModifiedDate属性可以做到这一点,但我面临的问题是,即使iPhone没有同步,这个日期也会更改。通常,如果iPod中的正在播放列表或当前播放列表更改,则日期会更改。
是否有其他方法可以检测iPhone是否已同步?

另外,我也不完全确定lastModifiedDate何时会发生变化,除了当前播放列表的更改之外。 - Dhawal
2个回答

0

你可以使用 lastModifiedDate,在应用程序关闭时记录播放列表的状态,然后在应用程序打开并且 lastModifiedDate 已更改时:比较当前和先前的播放列表。


嗨,Alex,感谢回复。即使在iPod中更改了当前播放列表或正在播放的列表,问题仍然会出现,并且没有办法获取iPod的当前播放列表(如果有,请告诉我!)。通过您的方法,我可以存储先前的播放列表(因为该播放列表是由我的应用程序设置的),但无法获取当前播放列表进行比较。 - Dhawal

0
如果设备与iTunes同步,则会清除所有应用程序下的tmp文件夹。 因此,您可以在tmp中创建一个空文件,下次当您的应用程序启动并发现文件丢失时,设备应该已经被同步了。 要获取tmp文件夹路径,请使用NSTemporaryDirectory()

谢谢@Owen,我今天会去查看。 - Dhawal
你好,我又来了。我已经尝试过这种方法,但是当 iPhone 同步时,临时目录中的文件并没有被删除。我正在 iOS 3.1.3 上进行测试。 - Dhawal
我发现几年前,当时我无意中使用了NSTemporaryDirectory()而不是NSHomeDirectory(),结果一个保存文件被保存在<app folder>/tmp/Documents/而不是<app folder>/Documents/,导致每次同步设备时都会删除保存的文件。这是一个bug,我花了一周多的时间来解决它,所以我非常确定。也许苹果后来改变了这种行为。 - howanghk
从iOS 8开始,这种方法不再适用。还有其他建议吗? - Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接