Falaaaa ae dev’s marotos que acompanham meu blog, pra quem achava que não… SIM, estou de volta com mais um post nessa budega, e hoje vou contar um causo de desenvolvedor.

Recentemente um cliente pediu para eu atualizar o app que eu havia desenvolvido para ser compatível com o novo Android 6.0 Marshmallow.

Até aí nada de mais né, molezinha, abri o Android Studio, fui lá no manifest, alterei pra SDK 23 e fui testar no meu celular (Moto X 2014) que já está com a nova versão do android, qual não foi minha surpresa quando fui testar uma funcionalidade que usava o GPS e … pá, deu force close ¬¬.

Apenas soltei um “PQP” e fui investigar o problema mais a fundo… após debuggar um pouco identiquei que estava estourando um SecurityException na minha classe de atividades de GPS, devido a falta da permissão ACCESS_FINE_LOCATION, sendo que a permissão estava lá no manifest, então logo imaginei que fosse alguma merda na versão 6.0 , pesquisando na documentação oficial identifiquei que nesta nova versão do Android algumas permissões consideradas “perigosas” devem ser solicitadas explicitamente.

Aí vai aparecer aquela janela de confirmação tipo essa aleatória que eu peguei no google.

 

permissions1

 

Então, pra resolver meu problema basicamente fiz um teste para saber a versão do Android que estava usando o aplicativo era maior ou igual a 23 (versão da SDK do Android Marshmallow), fiz minha activity implementar “ActivityCompat.OnRequestPermissionsResultCallback” e sobrescrevi o método onRequestPermissionsResult na activity , abaixo um exemplo de como ficaria.

 

Essa constante READ_GPS_REQUEST_CODE é uma constante com o valor 12 que eu criei.

Com isso, tudo voltou a funcionar lindamente como deveria 😀

 

Referências:

http://developer.android.com/intl/pt-br/training/permissions/requesting.html

http://developer.android.com/intl/pt-br/reference/android/Manifest.permission.html

#parti

VN:F [1.9.22_1171]
Rating: 8.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)
Resolvendo o erro de GPS/Permissões no Android 6.0, 8.5 out of 10 based on 2 ratings