【问题标题】:Have iTunes inform me when I programmatically sync iphone using COM当我使用 COM 以编程方式同步 iphone 时,让 iTunes 通知我
【发布时间】:2010-12-07 00:03:36
【问题描述】:

我有 written an application 将日历从 Lotus Notes 同步到 iphone(使用 MS Outlook 作为管道),我想告诉 iTunes 将更改推送到 iphone。

我可以使用 COM 接口 (IITIpodSource.UpdateIpod) 很好地完成此操作,但问题是此方法在启动同步时立即返回。然后 iTunes 将处理其余部分。我希望在 iTunes 完成同步时通知我的应用程序,以便我可以相应地更新我的 GUI。

因此,当 iTunes 正确同步 iphone 时,我的应用程序从未被告知 何时 完成。顺便说一下,我可以轮询的状态标志与事件一样好......

我在文档中找不到任何帮助。有没有人尝试过这样的事情?

编辑:我尝试轮询 FreeSpace 属性,但它似乎在同步完成之前更新(据我所知,甚至可能更新多次)

【问题讨论】:

  • EjectIPod 在完成同步之前会锁定吗?
  • 不,很遗憾没有。它使 iTunes 弹出一个对话框,询问用户是否真的希望 ipod 在同步期间弹出。在此期间 EjectIpod 调用被阻止。如果我单击“否”,则同步继续,并且 EjectIpod 返回时没有错误消息或返回值(这是一个 void 方法)

标签: iphone windows com itunes synchronize


【解决方案1】:

尝试直接在 iPod 上执行其他操作(例如,创建一个新的播放列表 - 弹出可能有点“太难”,除非您可以以编程方式重新插入 iPod)。至少通过 GUI,您只能在同步完成后执行此操作。

【讨论】:

  • 好建议,但不幸的是它没有奏效。我尝试创建播放列表和文件夹,但我得到“源不可修改”异常(即使在同步完成后)。我想这与您在 iphone 上使用手动还是自动同步音乐有关(即“手动管理音乐和视频”)
  • 嗯 .. 你能检查一下 iPod 上是否存在播放列表吗? (或者作为枚举现有播放列表的接口?)
  • 是的,我可以查询和枚举它们。我还可以在同步进行时枚举每个播放列表中的曲目..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多