对于我的Android应用程序,我正在使用JSON文件,该文件正在存储中下载。为此,我必须设置几个权限。
是否有一种无需任何许可就可以“下载”文件的方法。打开它们,从文件中获取输入并使用它
答案 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