如何从Android手机上获取google.com/contacts的读取权限?

时间:2010-02-10 08:30:16

标签: android google-contacts

在我的Android应用程序中,我想从google.com/contacts中检索生日字段,因为此字段未在Android联系人应用程序中同步。 如何获得谷歌联系人的读取权限?

我看到了Google contacts APIs,我是否必须使用它?哪一个 ? Portable version

或者是否有一种简单的方法可以阅读这些联系人,就像Android在同步时所做的那样?

提前致谢

2 个答案:

答案 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);

https://developer.android.com/about/dashboards/index.html

答案 1 :(得分:1)

应该可以使用AccountManager从Android 2.0开始。

没有教程或样本,我无法访问任何> = 2.0设备来试用它。

请参阅http://code.google.com/p/android/issues/detail?id=1073#c28

根据我的理解,您应该能够获得Google帐户的GetAuthToken,并在授权标题中将其传递给此处授权:GoogleLogin auth = yourAuthToken