无需下载即可打开JSON文件

时间:2018-07-03 09:11:17

标签: android json download permissions

对于我的Android应用程序,我正在使用JSON文件,该文件正在存储中下载。为此,我必须设置几个权限。

是否有一种无需任何许可就可以“下载”文件的方法。打开它们,从文件中获取输入并使用它

3 个答案:

答案 0 :(得分:1)

将JSON文件放置在assests文件夹中,然后您可以使用以下功能从文件中读取数据:

public String loadJSONFromAsset() {
String json = null;
try {
    InputStream is = getActivity().getAssets().open("yourfilename.json");
    int size = is.available();
    byte[] buffer = new byte[size];
    is.read(buffer);
    is.close();
    json = new String(buffer, "UTF-8");
} catch (IOException ex) {
    ex.printStackTrace();
    return null;
}
return json;
}

有关从JSON解析数据的更多详细信息,请访问this链接。

答案 1 :(得分:1)

您的清单中只有Internet许可才能从Internet下载文件。

///<uses-permission android:name="android.permission.INTERNET" />


  new Thread() {
            @Override
            public void run() {
                super.run();
                StringBuilder sb = new StringBuilder();
                try {
                    URL url = new URL("http://yourwebpage.com/abc.json");
                    // Read all the text returned by the server
                    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                    String str;
                    while ((str = in.readLine()) != null) {
                        sb.append(str);
                    }
                    in.close();
                } catch (MalformedURLException e) {
                } catch (IOException e) {
                }

                String your_json=sb.toString();

                //process Json Here



            }
        }.start();

答案 2 :(得分:1)

从Android 4.4(API级别19)开始,使用getExternalFilesDir()访问的应用程序私有外部存储目录中的文件读写操作不需要READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE权限。因此,如果您的应用支持Android 4.3(API级别18)及更低版本,并且您只想访问私有外部存储目录,则应通过添加maxSdkVersion属性声明仅在较低版本的Android上请求权限:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                     android:maxSdkVersion="18" />
    ...
</manifest>

有关更多信息,请参阅https://developer.android.com/training/data-storage/files#PrivateFiles