Как отправить файл kml в Google Планета Земля, как это делает MyTracks (с открытым исходным кодом )?

Я не знаю, видели ли вы удивительное обновление Mytrack, но оно позволяет отправить файл kml в приложение Google Планета Земля и отобразить его в приложении Google (, если оно установлено, конечно ).

enter image description here

Исходный код есть:http://code.google.com/p/mytracks/source/browse/

но я не могу найти способ добиться такого.

Кажется, я нашел здесь кое-что: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);

Жестко запрограммированный способ дает этот код:

    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);

Но приведенный выше код просто отображает путь с тем же результатом, что и этот код:

 Intent mapIntent = new Intent(Intent.ACTION_VIEW); 
    Uri uri1 = Uri.parse("file:///sdcard/test.kml"); 
    mapIntent.setData(uri1); 
    startActivity(Intent.createChooser(mapIntent, "Sample")); 

Моя цель — получить тот же результат с помощью кнопки «играть».

6
задан JasonM1 3 November 2012 в 20:00
поделиться