¿ Cómo implemento este código para android 6.0? – java android

Pregunta:


Tengo en un Fragment implementado el Google API y FUNCIONA. Pero funciona en mis 3 móviles que son jellybean, kitkat y lollipop. El de mi amigo que es 6.0 no funciona… aparece el mapa de GOOGLE API, sí, pero no aparecen las coordenadas, como si no hubiera puesto nada, sólo el mapa…

¿ Por qué ? ¿ Dónde falla ?

Aclaración: Si pensáis decirme que intente con MapFragment se me detiene la aplicación, así que esa no es la solución, con MapFragment en vez de SupportMapFragment no me funciona en ninguna situación, y lo implementado aquí bajo funciona:

public class Map_fragment extends Fragment implements OnMapReadyCallback {

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.activity_map, container, false);

    SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.mapid);
    mapFragment.getMapAsync(this);

    return v;
}

@Override
public void onMapReady(GoogleMap map) {
    LatLng RudeBoys = new LatLng(39.4561165, -0.3545661);
    LatLng Malaga = new LatLng(36.6981483, -4.4513236);
    LatLng Melilla = new LatLng(35.2896931, -2.9427164);


    if (Build.VERSION.SDK_INT >= 23 &&
            ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
            ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return;
    }

    map.setMyLocationEnabled(true);
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(RudeBoys, 5)); // ZOOM AL EMPEZAR EL GOOGLE MAP

    // ¡¡ FOR EACH LOCATION I CAN USE DIFFERENT ICON AND DESCRIPTION , RAFA!!
    map.addMarker(new MarkerOptions()
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.box24))
            .title("Rude-Boys")
            .snippet("Tienda principal")
            .position(RudeBoys));

    map.addMarker(new MarkerOptions()
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.mapfinal))
            .title("CLUB DE LA LUCHA")
            .snippet("Málaga")
            .position(Malaga));

    map.addMarker(new MarkerOptions()
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.mapfinal))
            .title("ON FITNESS SHOP")
            .snippet("Melilla")
            .position(Melilla));    

}

}

<fragment
    android:id="@+id/mapid"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Preguntado por: Rf Mvs

sioesi

desde Android 6.0 en adelante, los permisos de las aplicaciones no se dan cuando se instala, si no, cuando el usuario la ocupa. Para acceder a las coordenadas del telefono es necesario ver los permisos necesarios. Podrias ver con esto Documentacion:

Solicitar permisos de tiempo de ejecución
Android 6.0 (Marshmallow) presenta un nuevo modelo para administrar permisos, el cual simplifica el proceso de instalación y actualización de aplicaciones para los usuarios. Si tu aplicación tiene como destino la API nivel 23 o una posterior, puedes usar el nuevo modelo de permisos.

if (Build.VERSION.SDK_INT >= 23) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
        //todo bien
    } else {
        ActivityCompat.requestPermissions(
            this, new Strin g[] { android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION }, 1337);
    }
}

EDICION

if (Build.VERSION.SDK_INT >= 23 &&
        ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
        ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    return;
}

Si es mayor a 23 y no tienes los permisos tu simplemente no cargas el mapa. Tienes que solicitar el permiso, verificar que se los dio y seguir tu codigo.

Fuente

Related Posts:

Girar Rectángulo con LibGDX – android libgdx
Pregunta: Estoy haciendo un programilla de prueba que se compone de : 4 botones , arriba, abajo, izquierda y derecha. Una nave espacial, formada por un ...
Botones con android y LibGDX – android libgdx
Pregunta: Buenas, he creado un pequeño boton en android, con libGDX muy sencillo, pero el problema es el siguiente: Le tengo asignada una funcion que escribe ...
¿Location manager Android? Experiencias – android mysql android-studio
Pregunta: He desarrollado una aplicación Gps que envía información a Mysql cada 10 seg atraves de locationmanager. ¿Según su experiencia hasta cuanto es posible disminuir ...
Tomcat no encuentra los recursos – java angularjs http
Pregunta: Bueno tengo una aplicación con AngularJS que hace peticiones al API de gitHub como un ejemplo para aprender a usar AngularJS, pero el problema ...
Crear cuenta regresiva N segundos mientras se visualiza una Activity en Android – java android
Pregunta: Quiero implementar una cuenta regresiva de N segundos, que se inicie cuando la Activity se muestre, se pare el contador cuando el usuario decide ...
Crear prototipos para aplicaciones Android – android prototipos
Pregunta: estoy interesado en optar por una herramienta que me sea bastante util para poder realizar prototipos de aplicaciones móviles, especificamente para Android. Empece buscando ...
¿Como Se Instala Un Apk Y Como Se Ve Despues? – android
Pregunta: Tengo una duda sobre que pasa con ese archivo apk una vez instalado si se queda como uno solo o se separa en fragmentos ...
¿Como usar la clase Intent para mostrar las apps del usuario – android android-intent
Pregunta: Quiero que mi app muestre las aplicaciones del usuario en un ListView. He tratado de investigar y me salio en ingles la mención a esta ...
Calcular distancia entre dos coordenadas android – android
Pregunta: quisiera saber como puedo hallar la distancia entre 2 coordenadas en kilómetros en trayecto vía automóvil, estoy usando la API de google maps. Agradezco cualquier ...
¿Es legal leer imágenes y descripciones de otro sitio web y ponerlas en mi app? – java woocommerce
Pregunta: ¿Es legal leer imágenes y descripciones de otro sitio web y ponerlas en mi programa? Supongamos que quiero hacer una aplicación como la de ebay, ...
Problema con consulta JPQL + JPA + JSF + EJB – java jsf jpa
Pregunta: @Override public Usuario iniciarSesion(Usuario us){ Usuario usuario = null; String consulta; try { ...
No encuentra el audio dentro de src – java
Pregunta: Tengo una carpeta "audios" dentro de "src", para cuando construya el proyecto pueda reproducir los audios. Intento abrir el audio pero me salta "java.lang.NullPointerException" ...
¿Cómo puedo crear una aplicación Android que no se pueda cerrar así como WhatsApp? – android android
Pregunta: Esta pregunta ya tiene una respuesta aquí: ...
¿Como saber con Apache POI y java si una columna en excel esta oculta? – java apache-poi
Pregunta: Hola estoy importando archivos excel con extensión xls y xlsx pero mi duda es como poder detectar si la columna de una celda esta ...
Spinner y EditText – java android
Pregunta: Tengo este código para cargar un spinner con datos de una base de datos: private class Getfrutas extends AsyncTask<Void, Void, Void> { ...

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *