Cómo obtener googlemaps para aceptar un archivo KML local?
Estoy tratando de obtener googlemaps para aceptar un archivo KML local.
final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=file://" + Environment.getExternalStorageDirectory() + "/locate.kml")); startActivity(myIntent);
El archivo se encuentra en la tarjeta SD y es un archivo kml válido. Googlemaps carga, pero dice que no puede encontrar el archivo.
- Buscar una categoría específica Play Store
- Cómo escuchar un URI personalizado
- Utilizar el constructor URI en Android o crear URL con variables
- Poner una imagen grande en un ImageView no funciona
- Cómo obtener la ruta completa del archivo desde URI
final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=http://www.website.com/locate.kml")); startActivity(myIntent);
Funciona bien. geo: 0,0? q = parece estar muy poco documentado, ¿puede alguien ayudarme con cómo usarlo para referirme a un archivo local?
- Android: Obtener un archivo URI de un URI de contenido?
- Android: Guardar el objeto android.net.Uri en la base de datos
- Uso de una URL web para SUGGEST_COLUMN_ICON_1 para sugerencias de búsqueda
- Error al crear objeto Uri
- ¿Cómo obtener el Uri de una imagen almacenada en el SDCARD?
- Obtener el perfil de usuario / propietario de contacto URI y la imagen de usuario con API 8 en adelante
- Abrir archivo html local con el navegador de Android
- Convierta java.net.URI a android.net.Uri
Creo que el problema es que cuando intentas abrir una URL usando google maps, la aplicación envía una solicitud de búsqueda a google utilizando la url que proporcionaste.
A continuación, los servidores de google obtener los datos de la url que ha proporcionado y devolver el resultado.
Dado que los servidores google no pueden acceder a urls como 'file: //' o cualquier cosa local como 'http: // localhost' obtendrá un error. Esta es la razón por la cual funciona el segundo comando, los servidores google pueden acceder a http://www.website.com/locate.kml
Parece que no se puede hacer hasta Android 2.1
JavaScript se ejecuta en un Sandbox, por lo que no puede acceder a archivos locales sin extensiones propietarias.
- ¿El tamaño del texto no se cambia para los diferentes diseños de pantalla?
- ¿Cómo acceder a los datos compartidos de prefrence de otra aplicación en android?