No sé si has visto la asombrosa actualización de Mytrack, pero permite enviar un archivo kml a la aplicación Google Earth y mostrarlo dentro de la aplicación Google (si está instalado, por supuesto).¿Cómo puedo enviar un archivo kml a Google Earth, como MyTracks (código abierto) hacer?
El código fuente está ahí: http://code.google.com/p/mytracks/source/browse/
pero no puedo encontrar la manera de lograr tal cosa.
Creo que he encontrado algo aquí: http://code.google.com/r/jshih-mytracks3/source/browse/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java?spec=svn5178eb75934b7f0c4c23ec26b7d79a0787de18b8&r=5178eb75934b7f0c4c23ec26b7d79a0787de18b8
else if (playTrack) {
Intent intent = new Intent()
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(GOOGLE_EARTH_TOUR_FEATURE_ID, KmlTrackWriter.TOUR_FEATURE_ID)
.setClassName(GOOGLE_EARTH_PACKAGE, GOOGLE_EARTH_CLASS)
.setDataAndType(Uri.fromFile(new File(savedPath)), GOOGLE_EARTH_KML_MIME_TYPE);
startActivity(intent);
La forma codificada da este código:
Intent intent = new Intent()
.addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("com.google.earth.EXTRA.tour_feature_id","tour")
.setClassName("com.google.earth", "com.google.earth.EarthActivity")
.setDataAndType(Uri.fromFile(new File("/sdcard/test.kml")),
"application/vnd.google-earth.kml+xml");
startActivity(intent);
Pero el código anterior simplemente muestra el camino con el mismo resultado de este código:
Intent mapIntent = new Intent(Intent.ACTION_VIEW);
Uri uri1 = Uri.parse("file:///sdcard/test.kml");
mapIntent.setData(uri1);
startActivity(Intent.createChooser(mapIntent, "Sample"));
Mi objetivo es obtener el mismo resultado, con un "juego" pero tonelada.
¿Hubo también un cambio de Android 5 a 6? Mi aplicación puede abrir un archivo KML en Google Earth en Android 5. En Android 6, se abre Google Earth, pero aparentemente no recibió el archivo KML. –