时间:2010-07-25 19:49:32

标签: android openid

3 个答案:

答案 0 :(得分:10)

我认为你想要的是使用AccountManager

要了解Google帐户的类型,请使用以下内容:

AuthenticatorDescription[] types = mAccountManager.getAuthenticatorTypes(); //
for (AuthenticatorDescription type : types) {
  Log.d("account types", type.type);
}

然后执行类似

的操作
AccountManager mAccountManager = AccountManager.get(context);
Account[] mAccounts = AccountManager.get(context).getAccountsByType("com.google");
// Choose which account to use if there are multiple google accounts registered, save to Account mAccount
AccountManagerFuture<options> response = mAccountManager.getAuthToken(mAccount, type, options, activity, mCallback, mHandler); // define callback and handler yourself for where to return

当用户在mHandler中到达mCallback时,登录过程就完成了。如果用户尚未登录到他/她的Google帐户,则会使用通常的Google登录对话框。

亲自尝试一下,让我知道它是否对你有帮助!

答案 1 :(得分:3)

这是一个OPENID java API:这是链接:http://code.google.com/p/openid4java/

答案 2 :(得分:2)

我不确定我是否了解您希望用户登录的位置。

请注意,您无法假设将使用哪个Web浏览器(默认浏览器,Opera移动设备,制造商浏览器等)。如果您只提供网站,则了解用户是Web浏览器的责任。大多数人我已经登录了他们的谷歌帐户。 Android在这里是不太重要的。

如果您希望Android应用程序连接到Web服务而不提示输入登录名/密码,则无法使用openID实现此目的。我建议这个用例的oauth。