0

我想请求我的 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 任务。

在我的清单中:

<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 (app) 中:

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'
}
4

1 回答 1

1

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

于 2019-09-25T22:50:16.940 回答