【问题标题】:Android App Development: How to get Google Gmail account credentials to send email automatically?Android 应用程序开发:如何获取 Google Gmail 帐户凭据以自动发送电子邮件?
【发布时间】:2012-03-05 17:05:22
【问题描述】:

我正在尝试创建一个使用 Gmail 帐户自动发送电子邮件的应用程序。

如果用户已经在其 Android 设备中添加了 Gmail 帐户,我不希望用户输入用户名和密码,但我希望应用程序使用该帐户自动发送电子邮件。

我已经知道如何获取用户名和密码,但是当我要求输入密码时,我收到以下错误:

02-14 10:53:40.660: E/AndroidRuntime(23719): Caused by: java.lang.SecurityException: caller uid xxxxx is different than the authenticator's uid

其中 xxxxx 是 UID 号。 我的代码是这样的:

 AccountManager manager = AccountManager.get(this);
 Account[] accounts = manager.getAccountsByType("com.google");
 for (Account account : accounts){
   if(account.name.endsWith("gmail.com")){
      String gmailAddress = account.name;
      String password = manager.getPassword(account);
   }
 }

请给我一个示例代码或阅读链接。不要给我其他任何东西。 多谢

【问题讨论】:

    标签: android passwords gmail accountmanager uid


    【解决方案1】:

    只有当您共享相同的 UID 时才有可能获得 google 帐户凭据,而这在您编写自己的应用程序时是不可能的。我认为您需要使用曾经用户在手机中注册帐户时生成的 AuthToken。您可以交换使用访问令牌进行身份验证令牌以便自动发送邮件..

    【讨论】:

      【解决方案2】:

      你应该包括

      <uses-permission android:name="android.permission.GET_ACCOUNTS" />
      

      您的AndroidManifest.xml的许可

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-24
        • 1970-01-01
        • 2012-03-30
        • 2019-04-05
        • 2016-10-31
        • 1970-01-01
        • 2011-12-15
        • 2013-03-24
        相关资源
        最近更新 更多