Maps no android 10

25/03/2021

0

Olá, estou em processo de aprendizado e atualmente em processo de teste como programador em uma pequena empresa, e infelizmente eles utilizam java e eclipse para desenvolver e estou tendo que fazer umas alterações em um app muito antigo, esse app tem uma função que coleta uma latitude e uma longitude de onde foi feito um atendimento e mostra em um mapa, e não esta funcionando isso somente em dispositivos com o android 10, alguem poderia me ajudar, segue e a classe que faz isso (removi alguns dados por questao de segurança):

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
import br.com.premiumweb.UTIL.ConsultaSQLServer;
import br.com.premiumweb.UTIL.FormatarDataValores;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;


public class MapaAtendimento extends FragmentActivity{

	private GoogleMap map;
	Marker markerI, markerP, markerF;
	double lat, longi, lat1, long1, lat2, long2, lat3, long3;
	String nomeEmp, tipoCA, horaInicio, horaFinal, horaIniFormat, horaFinFormat, horaIniShow, horaFinShow;
	String conexao = ConsultaSQLServer.getConexao();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		checkLocationPermission();
		super.onCreate(savedInstanceState);

		setContentView(R.layout.mapa_atendimento);
		tipoCA = getIntent().getStringExtra("tipoCA");

		map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
		map.setMyLocationEnabled(true);


		if (tipoCA.equals("I")) {
			try {
				consultaIndividual();
			} catch (ParseException e) {
				e.printStackTrace();
			}
		} else if(tipoCA.equals("T")) {
			try {
				consultaTodos();
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
	}
    
	
	private void checkLocationPermission() {
		if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
	        Toast.makeText(this, "Sem acesso ao GPS" , Toast.LENGTH_LONG).show();
	        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 0);
	    }
	    else
	    {
	        Toast.makeText(this, "Acesso ao GPS - OK" , Toast.LENGTH_LONG).show();
	    }
	}

	public void consultaIndividual() throws ParseException {
		
		
	        
	    

		String horaIni = getIntent().getStringExtra("horaIni");
		String codVend = getIntent().getStringExtra("codVend");
		String recCnpjEmp = getIntent().getStringExtra("cnpjEmp");
		
		Connection connect;
		
		connect = ConsultaSQLServer.CONN("o", "", "", ConsultaSQLServer.getConexao());
		
		if(connect == null){
			
			connect = ConsultaSQLServer.CONN("", "", "", ConsultaSQLServer.getConexao());
		}

		if (connect != null) {

			try {

				Statement stmt = connect.createStatement();

				ResultSet rs = stmt.executeQuery("select * from localidade where cnpj_emp = '"+ recCnpjEmp + "'"
					+ " and tipo_prog = 'PREMIUMESTWEB' and cod_vendedor = "+ codVend + " and hora_inicio = '"+ horaIni	+ "'");

				if (rs.next()) {

					lat1 = rs.getDouble("lat_inicio");
					long1 = rs.getDouble("long_inicio");
					nomeEmp = rs.getString("razao_cli");
					horaInicio = rs.getString("hora_inicio");
					horaFinal = rs.getString("hora_final");


					SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
					SimpleDateFormat sdf2 = FormatarDataValores.getDataTime();

					horaIniFormat = sdf1.format(sdf2.parse(horaInicio));
					horaFinFormat = sdf1.format(sdf2.parse(horaFinal));


					if (nomeEmp.length() > 30) {
						nomeEmp = nomeEmp.substring(0, 30);
					}

					if (lat1 != 0 && conexao == "" ) {
						lat = lat1;
						longi = long1;
						drawMarker(new LatLng(lat, longi), nomeEmp, horaIniFormat + " a " + horaFinFormat);
					}else if(lat1 != 0 && conexao == ""){
						lat = lat1;
						longi = long1;
						drawMarker(new LatLng(lat, longi), nomeEmp, horaInicio + " a " + horaFinal);	
					}
					map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, longi), 15));
					
				}

				rs.close();
				stmt.close();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public void consultaTodos() throws ParseException {

		String dataIni = getIntent().getStringExtra("dataIni");
		String codVend = getIntent().getStringExtra("codVend");
		String recCnpjEmp = getIntent().getStringExtra("cnpjEmp");
		
		Connection connect;
		
		connect = ConsultaSQLServer.CONN("", "", "", ConsultaSQLServer.getConexao());
		
		if(connect == null){
			
			connect = ConsultaSQLServer.CONN("", "", "", ConsultaSQLServer.getConexao());
		}

		if (connect != null) {

			try {

				Statement stmt = connect.createStatement();

				ResultSet rs = stmt.executeQuery("select * from localidade where cnpj_emp = '"+ recCnpjEmp + "'"
					+ " and tipo_prog = 'PREMIUMESTWEB' and cod_vendedor = "+ codVend + " and data_inicio = '"+ dataIni + "'");

				while (rs.next()) {

					lat = rs.getDouble("lat_inicio");
					longi = rs.getDouble("long_inicio");
					nomeEmp = rs.getString("razao_cli");
					horaInicio = rs.getString("hora_inicio");
					horaFinal = rs.getString("hora_final");


					SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
					SimpleDateFormat sdf2 = FormatarDataValores.getDataTime();

					horaIniFormat = sdf1.format(sdf2.parse(horaInicio));
					horaFinFormat = sdf1.format(sdf2.parse(horaFinal));


					if (nomeEmp.length() > 30) {
						nomeEmp = nomeEmp.substring(0, 30);
					}

					if (lat != 0 && conexao == "") {
						drawMarker(new LatLng(lat, longi), nomeEmp, horaIniFormat + " a " + horaFinFormat);
					}else {
						drawMarker(new LatLng(lat, longi), nomeEmp, horaInicio + " a " + horaFinal);
					}

					map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, longi), 15));
					map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000,	null);
					
				}

				rs.close();
				stmt.close();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	private void drawMarker(LatLng point, String nomeEmp, String dataAtend) {

		MarkerOptions markerOptions = new MarkerOptions().position(point).title(nomeEmp).snippet(dataAtend);
		map.addMarker(markerOptions);
	}
}
Matheus Tavares

Matheus Tavares

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar