2012-06-19 37 views
3

我已经完成了相当多的研究,并且无法找到如何访问日历事件int Android的真正唯一ID。我查询以下URI获取Android日历的唯一ID活动

Context.getContentResolver().query(Events.CONTENT_URI, null, null, null, null); 

当翻翻我的Galaxy Nexus所产生的Cursor,没有什么类似iCalGUID窗口(如下图),我期待的。但是,当在HTC One S上进行相同的查询时,我注意到HTC已将iCalGUID作为额外的列字段包含在内,该列字段完全返回我正在查找的ID类型。它看起来像这样:

9ced5c2c-6ed9-481f-9f69-9a064810ac0f 

它看起来并不像这样iCalGUID领域是Android SDK中的标准,虽然,所以我不能让在其他Android手机这个ID。我的问题是,有什么方法可以以标准Android的方式获取这种类型的ID?我现在正瞄准ICS,但希望将来可以灵活地将其扩展到以前的版本。

如果还有其他类型的ID我应该使用,那也会很好。 备注:我是而不是正在寻找Events._ID列。我需要我的ID在所有设备上都是唯一的,并且所有类型的Account(Google,Exchange,Hotmail等)

谢谢!

+0

嗨,你有没有找到你的答案? – Patrick

回答

2

该字段UID_2445是专门用于此目的,但不幸的是它几乎从未填充和never with an actual UID

同步器可以访问我测试中始终保存事件原始ID的各种同步字段。问题是填充的字段取决于特定的同步器,没有标准。您需要同步器读取权限才能查看这些字段。

它不被支持,我不推荐它,但你可以查看账户类型(例如com.android.exchange)来找出同步器,然后查看通常填充了UID的字段。在我的测试中,它的同步数据2是除了谷歌之外的所有东西,它是同步数据1.