覆盖使用在线URL而不是本地资产的功能

时间:2017-11-05 18:36:09

标签: java android

我在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中覆盖此功能吗?

0 个答案:

没有答案