Android локальный файл KML и карты Google - PullRequest
1 голос
/ 28 января 2012

Я пытаюсь написать, а затем загрузить файл KML с помощью Карт Google через Intent. Я попробовал как внутреннее, так и внешнее хранилище для файла KML - кажется, что он пишет правильно, но я продолжаю получать следующую ошибку Toast в Google Maps:

Не найдено результатов для: file: /// data / data / [путь к пакету моего приложения] /kml_to_view.kml

Запись в файл

File dir = context.getFilesDir();
//File dir = Environment.getExternalStorageDirectory();
Log.d(TAG, "Writing to dir: " + dir);
File kmlFile = new File(dir, KML_FILE_NAME);
FileOutputStream fos;
try 
{
    kmlFile.createNewFile();
    fos = context.openFileOutput(KML_FILE_NAME, Context.MODE_WORLD_READABLE);
    //fos = new FileOutputStream(kmlFile);
    fos.write(kmlData.getBytes());
    fos.close();
    isKMLPrepared = true;
    Toast.makeText(context, "file write successful", Toast.LENGTH_LONG);
} 
catch (FileNotFoundException e) 
{
    e.printStackTrace();
} 
catch (IOException e) 
{
    Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG);
    e.printStackTrace();
}

Как видите, у меня есть части, необходимые для записи во внутреннюю память или на внешнюю, и я попробовал обе.

Отправка KML на карты

File dir = context.getFilesDir();
Log.d(TAG, "Local file path: " + dir);
readInternalStoragePrivate(KML_FILE_NAME);          

mapsIntent = new Intent(Intent.ACTION_VIEW);//Uri.parse("http://maps.google.com/maps"));
//String uri = "geo:0,0?q=file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + KML_FILE_NAME;
String uri = "geo:0,0?q=file://" + context.getFilesDir().getAbsolutePath() + "/" + KML_FILE_NAME;
Log.d(TAG, "URI: " + uri);
mapsIntent.setData(Uri.parse(uri));

Снова я попытался прочитать как внутренние, так и внешние местоположения при отправке пути в приложение Maps.

Есть идеи, что мне нужно сделать, чтобы приложение "Карты" считывало и обрабатывало локально сохраненный файл KML? Я прочитал ряд других постов, но пока не нашел решения своей проблемы.

...