Android本地KML文件&;谷歌地图

Android本地KML文件&;谷歌地图,android,android-intent,maps,kml,Android,Android Intent,Maps,Kml,我正试图通过一个Intent,使用googlemaps编写并加载一个KML文件。我尝试了KML文件的内部和外部存储—它似乎写得正确,但我在Google Maps中不断遇到以下错误: 未找到以下各项的结果:file:///data/data/[我的应用程序包路径]/kml\u至\u view.kml 写入文件 正如您所看到的,我有必要写入内部存储器或外部存储器,我已经尝试了这两种方法 将KML发送到地图 在向地图应用程序发送路径时,我再次尝试读取内部和外部位置 你知道我需要做什么才能让地图应用程序

我正试图通过一个Intent,使用googlemaps编写并加载一个KML文件。我尝试了KML文件的内部和外部存储—它似乎写得正确,但我在Google Maps中不断遇到以下错误:

未找到以下各项的结果:file:///data/data/[我的应用程序包路径]/kml\u至\u view.kml

写入文件 正如您所看到的,我有必要写入内部存储器或外部存储器,我已经尝试了这两种方法

将KML发送到地图 在向地图应用程序发送路径时,我再次尝试读取内部和外部位置

你知道我需要做什么才能让地图应用程序读取和处理本地存储的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();
}
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));