我想请求我的 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/