在我的Android应用程序中,我想从google.com/contacts中检索生日字段,因为此字段未在Android联系人应用程序中同步。 如何获得谷歌联系人的读取权限?
我看到了Google contacts APIs,我是否必须使用它?哪一个 ? Portable version?
或者是否有一种简单的方法可以阅读这些联系人,就像Android在同步时所做的那样?
提前致谢
答案 0 :(得分:3)
在AccountManager被放弃之前曾经有过一次黑客攻击,我在Android开发者组开始了大约一年的线程,但它已被删除。有一种无证方法,你必须通过反射访问。我似乎无法在任何地方找到它,就像谷歌删除了线程或其他东西。我发现下面有类似的东西,但它不是我工作过的那个。
http://donpark.org/blog/2009/01/24/android-client-side-oauth
在最坏的情况下,现在大多数设备都应该最终获得2.1。所以你可以让他们登录然后验证并从谷歌获取auth密钥,如果他们在2.1上使用AccountManager并且不打扰他们凭证。类似下面的内容
WebRequest req = HttpWebRequest.Create(
@"https://www.google.com/accounts/ClientLogin? accountType=GOOGLE&Email=them@gmail.com&Passwd=pass&service=gbase&source=sadboy");
WebResponse resp = req.GetResponse();
string all;
using (StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()))
all = sr.ReadToEnd().Trim();
int auth = all.IndexOf("auth=");
string auth = all.Substring(auth, all.Length - auth);
答案 1 :(得分:1)
应该可以使用AccountManager从Android 2.0开始。
没有教程或样本,我无法访问任何> = 2.0设备来试用它。
请参阅http://code.google.com/p/android/issues/detail?id=1073#c28
根据我的理解,您应该能够获得Google帐户的GetAuthToken,并在授权标题中将其传递给此处授权:GoogleLogin auth = yourAuthToken