我在sdk中有一个功能,它严格使用资产文件夹中的文件。我想在线使用该文件。当我将文件名作为example.mbtiles
传递时,它正在搜索文件是Asset文件夹,如果发现该应用程序正常工作。但是当我试图从诸如www.myurl.com/example.mbtiles
之类的URL获取文件时,它将所有url作为字符串并在Asset文件夹中找到该文件,这使得应用程序无法正常工作。这是函数
private File getFile(String url, final Context context) {
if (context != null) {
//we assume asset here
AssetManager am = context.getAssets();
InputStream inputStream;
try {
inputStream = am.open(url);
final File mbTilesDir;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
|| (!Environment.isExternalStorageRemovable())) {
mbTilesDir = new File(context.getExternalFilesDir(null), url);
} else {
mbTilesDir = new File(context.getFilesDir(), url);
}
return createFileFromInputStream(inputStream, mbTilesDir.getPath());
} catch (IOException e) {
Log.e(TAG, "MBTiles file not found in assets: " + e.toString());
return null;
}
}
try {
return new File(url);
} catch (Exception e) {
Log.e(TAG, "can't load MBTiles: " + e.toString());
return null;
}
}
如何从在线网址而不是本地资源文件夹中获取文件?我需要在这段代码中做些什么改变?我也想知道,我可以在MainActivity中覆盖此功能吗?