Я пытаюсь установить свойство non-persist в классе внутри фреймворка внутри службы Android с разрешениями systemui (пользовательский AOSP), т.е. оно имеет
<manifest
android:sharedUserId="android.uid.systemui"
coreApp="true">
это не может быть изменено!
Когда я сделал это, используя
System.setProperty("sys.some.param", _value);
Это было нормально, но когда служба по какой-то конкретной причине зависала,и перезапустил сам (липкий) свойство было удалено.Поэтому, поскольку я не могу предотвратить сбой, я могу также защитить свою собственность, поэтому я прочитал, что вместо этого будет использоваться
SystemProperties.set("sys.some.param", _value);
- только во время выполнения это не удалось!оставив меня с
Caught a RuntimeException from the binder stub implementation.
java.lang.RuntimeException: failed to set system property
at android.os.SystemProperties.native_set(Native Method)
at android.os.SystemProperties.set(SystemProperties.java:134)
Итак, мои вопросы:
Каковы различия между System.setProperty(key, value)
и SystemProperties.set(key, value)
??
Почему свойство, использующее первый метод, было удалено в случае сбоя службы, создавшей его?
Как решить проблему и установить свойство, не меняя его на постоянное или наuid.system?