Откройте файл JSON, не загружая его - PullRequest
0 голосов
/ 03 июля 2018

Для моего приложения для Android я использую файлы JSON, которые загружаю в хранилище. Для этого мне нужно установить несколько разрешений.

Есть ли способ "скачивать" файлы без какого-либо разрешения. Открывайте их, получая входные данные из файла и работайте с ним

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Только Интернет Разрешение в вашем Манифесте для загрузки файла формы Интернет.

///<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();
0 голосов
/ 03 июля 2018

Начиная с Android 4.4 (уровень API 19), чтение или запись файлов в частном каталоге внешнего хранилища вашего приложения, доступ к которому осуществляется с помощью getExternalFilesDir (), не требует разрешений READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE. Поэтому, если ваше приложение поддерживает Android 4.3 (уровень API 18) и ниже, и вы хотите получить доступ только к частному каталогу внешнего хранилища, вы должны объявить, что разрешение запрашивается только в более низких версиях Android, добавив атрибут maxSdkVersion:

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

Для получения дополнительной информации, пожалуйста, обратитесь https://developer.android.com/training/data-storage/files#PrivateFiles

0 голосов
/ 03 июля 2018

Поместите свой 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 посетите эту ссылку.

...