java - 为什么我无法通过 AccountManager 获取我的 Google 帐户?

标签 java android google-tasks

我想请求我的 Android 应用程序显示 Google Tasks 任务(在 AsyncTask 中)。

public class TacheAsyncTask extends AsyncTask<Void, Void, String> {
private AsyncResponse delegate;
private Activity mActivity;
TacheAsyncTask(AsyncResponse asyncResponse, Activity activity) {
    this.delegate = asyncResponse;
    this.mActivity = activity;
}

@Override
protected String doInBackground(Void... params) {

    AccountManager accountManager = AccountManager.get(mActivity);
    Account myAccount = accountManager.getAccounts()[0];
}

通过 AccountManager,我只能获得我的三星帐户(请求长度 = 1),因此我无法访问 Google Tasks。

在我的 list 中:

<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android:permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="com.samsung.android.app.notes.READ"/>

在我的 build.gradle (应用程序)中:

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'com.android.support:appcompat-v7:28.0.0'
  implementation 'com.android.support.constraint:constraint-layout:1.1.3'
  implementation 'com.android.support:support-v4:28.0.0'
  implementation 'com.android.support:recyclerview-v7:28.0.0'
  implementation 'com.android.support:cardview-v7:28.0.0'

  implementation 'pub.devrel:easypermissions:2.0.1'

  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

  implementation 'com.google.api-client:google-api-client:1.25.0'
  implementation 'com.google.apis:google-api-services-oauth2:v1-rev155-1.25.0'
  implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
  implementation 'com.google.apis:google-api-services-tasks:v1-rev49-1.23.0'
  implementation 'com.google.api-client:google-api-client-jackson2:1.25.0'
}

最佳答案

我遇到了同样的问题,并且刚刚在 here 上发布了类似的问题。 我怀疑是由于this影响所有运行 Oreo 的 Android 设备的问题。 如所述,您必须使用 GoogleAuthUtil.requestGoogleAccountsAccess 来获取 Google 帐户列表。不幸的是,这需要对服务进行非阻塞调用,然后使用后台线程的完成来触发 Google 帐户检索,我目前正在尝试将其应用到我的程序中。

关于java - 为什么我无法通过 AccountManager 获取我的 Google 帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623113/

相关文章:

java - 如何在 ShrinkWrap 容器中使用 log4j2?

android - travis-ci 构建因 ShellCommandUnresponsiveException 不断失败

date - 如何设置 Google Tasks 截止日期

android - Google Tasks 使用什么时区?

java - 用java读取midi IO设备

java - 如何使用 Jackson JSON 反序列化枚举列表?

android - 从视频中获取帧而不是使用 MediaMetadataRetriever

google-api - Google 通讯录任务日历 API 成本

java - 如何从服务器发回图像? (已编辑)

android - 底部的 ScrollView RelativeLayout 元素不可见