Как получить доступ к общедоступным настройкам на андроиде (используя Java) - PullRequest
1 голос
/ 18 марта 2019

У меня есть следующая функция в dart для установки определенного значения логического предпочтения.

_switchPersistentNotifications() {
  setState(() {
    isPersistentNotificationEnabled = !isPersistentNotificationEnabled;
  });
  widget.preferences.setBool(
      "isPersistentNotificationEnabled", isPersistentNotificationEnabled);
}

Эта функция устанавливает значение предпочтения isPersistentNotificationEnabled.

Теперь на родном конце Android я должен использовать это значение общего доступа. Вот что я сделал до сих пор.

SharedPreferences preferences =
                    PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                // check if the state change notification is to be shown
                if (preferences.getBoolean("flutter.isStateChangeNotificationEnabled", false)) {
                    showConnectionStateChangeNotification();
                }

И условие if никогда не оценивается как true. Я также попытался распечатать все существующие значения предпочтений, используя приведенный ниже код.

Map<String, ?> allEntries = preferences.getAll();
            for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
                Log.d("map values", entry.getKey() + ": " + entry.getValue().toString());
            }

И он представляет только те значения, которые создал Android (используя java).

Любая помощь в доступе к значениям предпочтений приветствуется. Спасибо.

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Извините, этот ответ опаздывает, только что получил ответ со страницы флаттера github.

Что вы можете сделать для этого:

SharedPreferences prefs = getSharedPreferences("FlutterSharedPreferences", MODE_PRIVATE);

тогда, если вы хотите прочитать, например, ключ "myValue", вы должны добавить "флаттер". Префикс:

String value = prefs.getString("flutter."+key, null);
0 голосов
/ 18 марта 2019

Существует замечательный пакет под названием shared_preferences , разработанный командой Flutter, который обрабатывает это на iOS и Android без необходимости касаться базы собственного кода!

Я не могу сказать, используете ли вы это из своего кода, но если нет, я настоятельно рекомендую проверить это.

...