Flutter-geolocator: Permitir apenas durante o uso do aplicativo no Android 10 retorna GeolocationStatus.denied

Criado em 3 out. 2019  ·  37Comentários  ·  Fonte: Baseflow/flutter-geolocator

🐛 Relatório de Bug

ao selecionar Permitir apenas durante o uso do aplicativo, a nova opção no Android 10 Geolocator().checkGeolocationPermissionStatus() retorna GeolocationStatus.denied
Screenshot_1570103723

Versão: 5.1.4

Plataforma:
: robô: Android

android in progress

Comentários muito úteis

Tenho o mesmo problema se usar a versão 5.1.4 + 1 e compilar com o SDK 28. Se eu compilar no SDK 29, funciona. Executando isso em um Pixel 3a com Android 10.

Posso confirmar que a configuração compileSdkVersion e targetSdkVersion para 29 resolveu este problema.

Todos 37 comentários

Você poderia me dizer mais sobre o código que retorna GeolocationStatus.denied?

Posso reproduzi-lo com o aplicativo de amostra.
apenas experimente com um emulador de Android 10.

O emulador resolve o erro GeolocationStatus.denied?

Não tenho certeza se entendi o que você quer dizer

Você poderia me dar alguns detalhes sobre o código e o que você está tentando criar? Estou tentando reproduzir seu problema, mas preciso de mais informações.

experimente o aplicativo de demonstração em um emulador de Android com Android 10
untitled

Reproduzi esse problema e concluí que as configurações de localização do dispositivo foram desativadas. Para corrigir esse problema, vá para Configurações > Local > Usar local > Ativado .

o local estava ativado, eu verifiquei, portanto, quando eu escolho permitir todo o tempo, ele reconheceu como concedido.

untitled

A saída do aplicativo informa que você está usando FusedLocationProvider. É recomendado usar o Google Play Services versão 11.6.0 ou superior, que inclui correções de bug para esta classe.

https://imgur.com/a/egX6z6t

Como você pode ver, estou usando o Google Play Services 19.2.75 e o local está ativado

É uma permissão completamente nova no novo Android 10. ela não deve ser permitida ou negada, pois requer verificações diferentes.

https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_BACKGROUND_LOCATION

@humazed O que você está tentando alcançar com o método Geolocator (). checkGeolocationPermissionStatus ()? Não recebo nenhum erro se definir as configurações de local como Permitido o tempo todo.

Eu o uso para verificação de permissão, e até mesmo o aplicativo de demonstração usa e não funciona.
E o problema só aparece quando você opta por permitir apenas durante o uso do aplicativo

Na quinta-feira, 10 de outubro de 2019 às 10h09 Stijn van Woerkom [email protected]
escreveu:

@humazed https://github.com/humazed O que você está tentando alcançar
o método Geolocator (). checkGeolocationPermissionStatus ()? Eu não entendo nenhum
erros se eu definir as configurações de localização para Permitido o tempo todo.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/BaseflowIT/flutter-geolocator/issues/334?email_source=notifications&email_token=ACDNYJTFXDG2QBXZGR24XQTQN3PLPA5CNFSM4I5CDEP2YY3PNVWWWK3TUL52HSBXZGR24XQTQN3PLPA5CNFSM4I5CDEP2YY3PNVWWWK3TUL52HS4ZWWH43KVM5NZWHCOMP5OWH63COMP5NZWH63COMBP5NZWH63COMP5NTZWHWRF5NTZWH63COMB5OWRF5WRF5NTZWHRF5NTWHWHRF5NHVRHWHRWHVNHHRHHRVNHHHRVNHVNHHRHWHVNHRHWH6rn5OWReq .
ou cancelar
https://github.com/notifications/unsubscribe-auth/ACDNYJS7PSSNNQPH3S7HBWTQN3PLPANCNFSM4I5CDEPQ
.

@humazed Eu reproduzi o aplicativo demo no novo Android 10 e com o método Geolocator (). checkGeolocationPermissionStatus () e recuperei 0 erros quando escolhi permitir apenas durante o uso do aplicativo. Você poderia enviar seu código para que eu pudesse dar uma olhada nele?

Acabei de clonar o repo e executá-lo sem nenhuma alteração

Eu até criei um novo emulador no caso do meu atual ter um problema ou algo assim, mas obtendo o mesmo comportamento

Acho que o problema dependeria mais das configurações do emulador. O aplicativo afirma que há problemas com o Google Play Services. Você está usando uma rede ou está em um local que não oferece suporte ao Google Play Services?

Tentei com um emulador novo, mas o problema é o mesmo

O aplicativo funciona bem para qualquer versão anterior ao android10

Nos gifs que forneci, estou mostrando a versão do Google Play Services e o local está ativado

Tenho o mesmo problema se usar a versão 5.1.4 + 1 e compilar com o SDK 28. Se eu compilar no SDK 29, funciona. Executando isso em um Pixel 3a com Android 10.

Tenho o mesmo problema se usar a versão 5.1.4 + 1 e compilar com o SDK 28. Se eu compilar no SDK 29, funciona. Executando isso em um Pixel 3a com Android 10.

Posso confirmar que a configuração compileSdkVersion e targetSdkVersion para 29 resolveu este problema.

Eu tenho o mesmo problema.

Também vejo isso no iOS. getCurrentPosition () mostra a caixa de diálogo para habilitar a localização sempre ou habilitar a localização ao usar o aplicativo ou negar o acesso à localização. Selecionar "Ativar ao usar o aplicativo" resulta em uma exceção com um erro "PERMISISON_DENIED"

Estou usando o geolocalização 5.1.3

Um erro semelhante é reproduzido no Pixel 4.

O mesmo problema.
Samsung Galaxy S10 Plus, ao clicar em "Manter acesso durante o uso", obtenha PermissionStatus.denied

No momento, estamos trabalhando em uma nova versão do plugin de permissões de localização. Esta nova versão inclui acesso respeitado durante o uso e não retorna mais PermissionStatus.denied.

Urgh - acabei de descobrir que estou tendo o mesmo problema para um aplicativo de produção. Eu havia presumido erroneamente que, quando um usuário concede permissões de acesso em uso, esse método retornaria PermissionStatus.granted - portanto, não posso mais confiar nisso, ao que parece.

EDIT: Duas horas depois, leia o resto do tópico e perceba que a sugestão de "Posso confirmar que a configuração de compileSdkVersion e targetSdkVersion para 29 resolveu esse problema." funciona.

"Posso confirmar que definir compileSdkVersion e targetSdkVersion como 29 resolveu esse problema." resolveu o problema até adicionar isso ao AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

@ JBBx2016 Estamos trabalhando nas permissões android.permissions.ACCES_BACKGROUND_LOCATION. Quando as permissões são corrigidas, isso pode resolver o seu erro.

Qualquer atualização?

Qualquer atualização?

Qualquer atualização

Não funciona em dispositivos Android 10. : |

Como solução temporária, você pode usar meu garfo
mestre de filial
onde movi o material de permissão de location_permissions obviamente quebrado para outro plug-in permission_handler

Meu aplicativo simplesmente para de funcionar após o serviço PopUp do Google Play, o que quer que eu responda "Negar", "Autorizar" etc. com Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
e com o melhor funciona bem
Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
Android 10 com emulador, vibração de ramo estável mais recente.

Geolocator locator = Geolocator();
    locator
        .checkGeolocationPermissionStatus(
            locationPermission: GeolocationPermission.locationWhenInUse)

Precisa passar permissão em params.
GeolocationPermission.locationWhenInUse

Corrigido na versão 6.0.0

Esta página foi útil?
0 / 5 - 0 avaliações