Как показать диалоги выбора номера телефона и электронной почты с использованием play-services- * depdencies? - PullRequest
0 голосов
/ 13 февраля 2020

Об этом много спрашивали, однако все решения теперь кажутся устаревшими, так как устарела GoogleApiClient.

Я хочу показать диалоговое окно, в котором перечислены телефонные номера, имеющиеся на устройстве пользователя. И отдельно, диалог, показывающий все электронные письма, связанные с устройством.

  • Есть ли решение, не использующее GoogleApiClient? (который сейчас устарел)
  • Решение не должно включать каких-либо страшных разрешений (я не фанат запрашивать разрешение только для автозаполнения)
  • Каков типичный показатель успеха решения? В каких android версиях это доступно? Как часто OEM-производители используют его, чтобы он не работал? (что произошло с решением GoogleApiClient)
  • В общем, меня не волнует база данных Firebase, вход в Google или что-либо связанное с аутентификацией. Я просто хочу всплывающее окно с номерами телефонов и другое всплывающее окно с электронными письмами, чтобы пользователи могли выбрать его в одном go, а затем я go и выполнить свою собственную авторизацию. (Казалось, что некоторые решения настаивали на GoogleSignIn, который даже не имеет отношения к проблеме)

В качестве примера общепринятым методом для всех таких вопросов является следующий метод:

        val hintRequest = HintRequest.Builder()
            .setPhoneNumberIdentifierSupported(true)
            .build()

        val intent = Auth.CredentialsApi.getHintPickerIntent(
            googleApiClient, hintRequest
        )
        startIntentSenderForResult(
            intent.intentSender,
            123, null, 0, 0, 0, null
        )

Однако это больше не работает. Диалог мигает и исчезает, и я возвращаю код результата Activity.RESULT_CANCELLED (0) в onActivityResult. Итак, либо эта функция была случайно остановлена ​​сервисами воспроизведения, либо она ненадежно реализована OEM-производителями, либо есть новый неослабный метод для этого?

Давайте прекратим путаницу здесь. Знаете ли вы о надежном способе выполнения sh этого?

1 Ответ

1 голос
/ 12 марта 2020

В сообщении упоминается несколько проблем, и я буду решать их по одному.

  1. Есть ли решение, не использующее GoogleApiClient? -> Мы работаем над новым решением, но оно будет немного отличаться от того, что мы предлагаем в настоящее время. Новое решение позволяет пользователю выбрать учетную запись Google для входа. Функция телефонного номера еще не установлена, и я поговорю об этом позже. Новый API выйдет к концу Q1 / раннему Q2.

  2. Я согласен с вами в отношении аккаунтов. Однако для того, чтобы получить номер телефона, приложению необходимо иметь разрешение, связанное с номером телефона (подробности см. В Android документах о разрешениях), или нам нужно усилить источник согласия / данных. Мы не планируем менять его на текущее решение. Это правда, что сейчас разрешения смешаны, то есть разрешение на номер телефона требуется, если приложение запрашивает только электронную почту - ожидайте, что оно будет исправлено в нашем новом API.

  3. The текущее решение доступно для всех устройств. Это также в ответ на ваш вопрос ниже: да, текущая реализация может иметь мерцающую проблему, когда нет данных для выбора пользователем. Мы собираемся улучшить API, чтобы приложение не запускало намерение, если нет данных. Для успеха, если вы используете новый API, у вас должна быть возможность измерить вероятность успеха в вашем приложении, поскольку поведение API Google менее непрозрачно.

  4. Вход в Google не работает Сегодня мы не предоставляем функцию телефонного номера, равно как и новый API, который мы собираемся опубликовать sh. Тем не менее, команда рассматривает возможность добавления функции телефонного номера в наш новый API. Просто чтобы быть ясно: новая функция номера телефона, которую мы рассматриваем, это проверенный номер телефона, поддерживаемый учетной записью Google, но не автозаполнение номера телефона. Мы хотели бы услышать ваши отзывы об этом:)

...