Можно ли программно изменить файл ресурса json? Или измените FileUtils. java, чтобы использовать другой файл json в зависимости от типа пользователя? - PullRequest
1 голос
/ 28 января 2020

Я знаю, что мой вопрос сформулирован несколько запутанно, но ...

Мое приложение использует SDK для обмена мгновенными сообщениями под названием Applozi c. Чтобы скрыть / добавить определенные функции в пользовательский интерфейс, существует файл applozi c -settings. json, который можно редактировать.

Например: "hideGroupExitButton": true

У моего приложения есть два типа пользователей: отправители и получатели. У отправителей есть некоторые возможности, которых нет у получателей ... поэтому мне нужно изменить некоторые из этих значений в зависимости от типа пользователя.

SO: возможно ли программно изменить некоторые из этих значений в зависимости от типа пользователя?

(applozi c -settings. json используется только в FileUtils. java - это файл LOCKED ...)

Или мне нужно создать новый файл json для одного из типов пользователей и каким-то образом измените FileUtils. java, чтобы использовать правильный файл?

Это соответствующий код в FileUtils. java:


public static String loadSettingsJsonFile(Context context) {
    BufferedReader br = null;
    StringBuffer sb = new StringBuffer();
    try {
        br = new BufferedReader(new InputStreamReader(context.getAssets().open(
                "applozic-settings.json"), "UTF-8"));
        String line;
        if (br != null) {
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
        }
    } catch (IOException ioe) {
        return null;
    } catch (Exception e) {
    } finally {
        try {
            if (br != null) {
                br.close();
            }
        } catch (IOException e) {
        }
    }
    return sb.toString();
}

1 Ответ

2 голосов
/ 28 января 2020

Если я правильно понимаю, можно редактировать значения файла JSON. См .: JSON Файл - Java: редактирование / обновление значений полей

Если вы хотите открыть другой файл в зависимости от пользователя, просто сохраните разные файлы, например, в строках. здесь:

br = new BufferedReader(new InputStreamReader(context.getAssets().open(
                "applozic-settings.json"), "UTF-8"));

Вы можете просто сказать string file = "applozic-settings.json";

и напрямую передать это в вышеприведенную функцию:

br = new BufferedReader(new InputStreamReader(context.getAssets().open(
                file), "UTF-8"));

Итак, по сути вы можете сказать:

string file;
if(userType == x){
   file="x.json"
}
else{
   file="y.json"
}

...