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

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

Aceitar