Почему я не получаю свою учетную запись Google с помощью AccountManager?

Я хочу сделать запрос для моего приложения 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 я получаю только свою учетную запись Samsung (длина запроса = 1), поэтому у меня нет доступа к Google Tasks.

В моем манифесте:

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

person Pierre    schedule 23.08.2019    source источник


Ответы (1)


Я столкнулся с той же проблемой и только что разместил аналогичный вопрос на здесь. Я подозреваю, что это связано с этой проблемой, которая затрагивает все устройства Android, работающие под управлением Oreo. . Как описано там, вы должны использовать GoogleAuthUtil.requestGoogleAccountsAccess, чтобы получить список учетных записей Google. К сожалению, для этого требуется неблокирующий вызов службы, а затем использование завершения фонового потока для запуска извлечения учетной записи Google, которую я сейчас пытаюсь внедрить в свою программу.

person HapkidoNinja    schedule 25.09.2019