使用 Gmail 帐户登录我的应用程序
Use Gmail account to log into my App?
对于我正在开发的Android应用程序,它需要创建一个配置文件才能向其他用户发送和接收内容。对于登录过程,用户是否可以使用手机上关联的Gmail帐户登录?这将是使用谷歌播放的同一帐户。
这将使整个登录过程非常顺利,我认为这将是最好的方案。
非常感谢!
是的,这是可能的,而且它很简单。在开始之前,您需要添加AndroidManifest的一个权限.xml
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
它允许您读取与设备关联的帐户。然后,在应用程序内执行以下操作:
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
这将返回用户的所有谷歌帐户。在您的情况下,也许您只需要电子邮件,因此这里有一个快速静态函数,可以为您提供它们:
public static String[] getAccounts(Context context) {
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
String[] names = new String[accounts.length];
for (int i = 0; i < accounts.length; ++i) names[i] = accounts[i].name;
return names;
}
此函数将返回设备上所有 Gmail 电子邮件(Google 帐户(的字符串数组。
但是,如果您需要与某些Google服务"交谈"以获取更多信息,则必须执行以下操作。首先向清单再添加一个权限:
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
此权限将允许您的应用使用用户凭据在某些 Google 服务面前识别用户。它不会给你凭据(密码(。
要使用某些Google服务,您需要一个令牌。这是一个快速功能:
public static String getToken(Activity activity, String serviceName) {
try {
Bundle result = AccountManager.get(activity).getAuthToken(account, serviceName, null, activity, null, null).getResult();
return result.getString(AccountManager.KEY_AUTHTOKEN);
} catch (OperationCanceledException e) {
Log.d("Test", "Operation Canceled");
} catch (AuthenticatorException e) {
Log.d("Test", "Authenticator Exception");
} catch (IOException e) {
Log.d("Test", "Auth IOException");
}
return null;
}
一旦你有了令牌,你只需要他们拥有的HTTP API,你就会玩得开心:-(
相关文章:
- 如何在Chrome中找到JSON后将其放入我的应用程序's开发人员工具
- 在我的应用程序中,当我使用targent as_blank时,弹出窗口被阻止
- JSHint 错误:未定义我的应用程序 (W117)
- 为什么我的应用程序没有到达控制台.log
- cordova.exec() 正在破坏我的应用程序代码
- 约曼发电机有棱角的咕哝发球:dist打断了我的应用程序
- jQuery日期选择器未显示在我的应用程序中
- 如果我刷新几次,为什么我的应用程序会在Chrome中崩溃
- 在我的应用程序中集成android街景和谷歌地图
- 我应该将javascript框架与我的应用程序捆绑在一起还是使用公共CDN
- LearnBoost的Up for Node.js似乎无法正确重新启动我的应用程序
- 如何消除我的应用程序上的希腊字符
- 如何在我的应用程序中动态加载JS文件
- 我的应用程序中的可点击元素应始终是锚标记
- 如果我只想在我的应用程序中使用表单生成器,则 Alloy UI 的 zip 文件中要包含哪些文件夹
- 通过我的应用程序删除驻留在内部 Linux 服务器上的文件
- 当我第二次运行我的应用程序时,结果没有显示
- 如何从我的应用程序在用户墙上发布
- Facebook,通知用户我的应用程序更新
- window.open() 使我的应用程序在 Blackberry10 上崩溃