>
Boa tarde. Estou fazendo o Curso de Android Online e me deparei com um problema que não sei como resolver.
Estou usando o Android Studio versão 2.3.3 e estou na segunda aula do curso.
Ao rodar a aplicação de vendas ela funciona bem no meu celular Lenovo Vibe K5.
Consigo ir para página de nova venda, escolher o produto e colocar o nove mas ao clicar em Salvar o aplicativo encerra.
Fui colocando vários Toasts até descobrir em qual linha a aplicação dá problema e notei que é quando tento pegar a latitude e a longitude do local de vendas.
coloquei as permissões de uso no manifest, fiz testes de grants na Activity NovaVenda para ver se estava com permissão para acessar a localização e tudo bem.
consegui ver o provider que ele estava usando (no caso GPS) mas quando tento pegar as localizações o aplicativo encerra.
Seguem os arquivos de maifest e NovaVendaActivity.java.
O pedaço de código onde dá pau é
public void Salvar_Click(View view) {
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getBaseContext(), "Sem permissão para FINE_LOCATION", Toast.LENGTH_LONG).show();
return;
} else {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getBaseContext(), "Sem permissão para INTERNET", Toast.LENGTH_LONG).show();
return;
} else {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getBaseContext(), "Sem permissão para COARSE_LOCATION", Toast.LENGTH_LONG).show();
return;
} else {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getBaseContext(), "Sem permissão para EXTRA_COMANDS", Toast.LENGTH_LONG).show();
return;
} else {
Toast.makeText(getBaseContext(), "Com permissão", Toast.LENGTH_LONG).show();
}
}
}
}
Location location = locationManager.getLastKnownLocation(provider);
String provedor = location.getProvider(); // Dá pau nesta linha
/*la = location.getLatitude(); // Dá pau nesta linha
lo = location.getLongitude();*/ Dá pau nesta linha
Toast.makeText(getBaseContext(), provedor, Toast.LENGTH_LONG).show();
Olá Alberto
Obrigada pela mensagem, já estamos verificando a sua duvida, e em breve iremos lhe responder.
Att