0

我有一个通过端点连接到 appengine 后端的 android 应用程序。我希望应用程序知道用户的谷歌帐户名称,我想知道是否有一种简单的方法,无需通过此处
描述的所有身份验证程序 我现在并不真正关心安全问题,我只想,例如,能够通过使用用户的名字向用户说“你好”,或者在数据存储中存储使用该应用程序的用户名列表。而且我不希望用户被迫输入密码才能使用我的应用程序。
我尝试使用代码

GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(this, "appname.appengine.com");
String try= credential.getSelectedAccountName();

在 OnCreate() 内部,但它给出了一个空结果。我也试着把

UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();

在端点内部,但它也不起作用。
有什么帮助吗?提前致谢!

4

1 回答 1

0

您可以使用帐户管理器来获取用户的帐户,而无需实际验证帐户,例如:

// Requires android.permission.GET_ACCOUNTS
AccountManager manager = AccountManager.get(ctx);
Account[] accounts = null;
try {
    accounts = manager.getAccounts();
} catch (SecurityException e) {
    Log.i(CTAG, "Unable to read due to SE");
}
if (null != accounts)
    for (Account account : accounts)
        Log.v(CTAG, "New account =" + account.name + ", " + account.type );

这应该满足您存储使用您的应用程序的用户列表的要求。

但是,这不会为您提供用于问候他们的用户的实际名称。要获取用户名,您需要使用随 ICS 添加的配置文件 API(并且需要 READ_PROFILE 权限)。你可以在这里得到他们的名字:

http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.StructuredName.html

于 2013-04-30T17:55:37.053 回答