Можно ли прослушать подтверждение или отказ в разрешении Google Nearby? - PullRequest
0 голосов
/ 09 апреля 2019

В настоящее время в своей основной деятельности я использую клиент Google API для управления жизненным циклом Nearby. Если Nearby не включен или не имеет разрешения на запуск, сработает клиентский OnConnectionFailedListener. Оттуда я ввожу новое действие с startActivityForResult и слушаю его событие закрытия, чтобы снова проверить, включен ли и работает ли Nearby. Это был мой взгляд на проблему, поскольку Google, похоже, официально не предоставляет способ прослушивания отображаемого диалогового окна, запрашивающего у вас разрешение или что-то похожее.

Я разработал, по крайней мере, одну стратегию для достижения своей цели, которая заключается в том, чтобы отслеживать вводимые пользователем данные, когда они принимают / отклоняют, давая разрешение на использование поблизости.

Моя стратегия состояла бы в том, чтобы найти среди представлений это диалоговое окно, представленное Google, и прослушать его кнопки. Я отлаживал свой код во время отображения Диалога и нигде не мог его найти. Возможно, это связано с тем, что диалог инициируется внутри новой «GoogleApiActivity» (которую я даже видел, входя и выходя из экрана). Как я могу получить доступ к этому?

Я также ищу другие способы решения этой проблемы. Но я бы хотел потерять этот дополнительный экран, который я использую сегодня, и зависеть только от диалога API. Я пытаюсь заставить мое приложение работать на API 16+ и на нескольких типах устройств без проблем с совместимостью.

Заранее благодарим вас за потраченное время и за то, что поделились своими знаниями.

1 Ответ

0 голосов
/ 11 апреля 2019

Оказывается, я на самом деле ответил сам на свой вопрос.В своем вопросе я заявил, что Google открывает GoogleApiActivity для отображения диалогового окна, и открытие этого действия приостановит жизненный цикл моего основного действия, так же, как когда я использовал это вспомогательное новое действие, которое я описал в своем вопросе.Более того, когда Google вызывает GoogleApiActivity, используется команда startActivityForResult (), и для идентификации используется код 65537.Если я проверю этот код в onActivityResult (), я могу проверить, дал ли пользователь разрешение на основе resultCode.Если resultCode равен Activity.RESULT_OK, это означает, что разрешение было дано.

Я только хотел бы, чтобы это было в документах, я нигде не мог его найти.

...