答案 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。