В моем классе MapsActivity.java Я создал, в дополнение к onCreate:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
try {
layer = new KmlLayer(mMap, generateNoteOnStorage(getApplicationContext(), "kmll.kml", contenuto), getApplicationContext());
//layer = new KmlLayer(mMap, R.raw.kmll, getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
try {
layer.addLayerToMap();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
и
public FileInputStream generateNoteOnStorage(Context context, String sFileName, String sBody) {
try {
File root = new File(Environment.getRootDirectory(), "kmlfiles");
if (!root.exists()) {
root.mkdirs();
}
File gpxfile = new File(root, sFileName);
FileWriter writer = new FileWriter(gpxfile);
writer.append(sBody);
writer.flush();
writer.close();
Toast.makeText(context, "Saved", Toast.LENGTH_SHORT).show();
return new FileInputStream(gpxfile);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Я не могу понять, почему этокод неверный.Я уверен, что это связано с процедурой FileInputStream (а также потому, что я не очень дружу с ними).Это ошибка: screen
Я также попытался скопировать kmll.kml (сгенерированный файл) в res / raw и затем вместо generateNoteOnStorage(getApplicationContext(), "kmll.kml", contenuto)
заменил его на R.raw.kmll
и это сработало.