Ответ 1
Похоже, что этого ограничения не будет. Я вижу те же правила в источниках javascript для Android.
public class SystemProperties
{
public static final int PROP_NAME_MAX = 31;
public static final int PROP_VALUE_MAX = 91;
...
}
Я получаю сообщение об ошибке при попытке установить значение для свойства с именем >= 32 символа
adb shell setprop 01234567890123456789012345678901 VALUE
Ошибка:
could not set property
Это прекрасно работает
adb shell setprop 0123456789012345678901234567890 VALUE
adb shell getprop 0123456789012345678901234567890
VALUE
Есть ли способ установить свойства с более длинными именами?
Похоже, что этого ограничения не будет. Я вижу те же правила в источниках javascript для Android.
public class SystemProperties
{
public static final int PROP_NAME_MAX = 31;
public static final int PROP_VALUE_MAX = 91;
...
}
У меня также была такая же проблема. поскольку упомянутый выше ответ невозможен, используйте ИМЯ, которое превышает 31. поэтому я меняю имя пакета на более короткое, чем 31, и теперь он работает.
Возможно использование перенаправления?
Задайте небольшое свойство, которое будет содержать имя файла для файла conf:
setprop confFileName "myConf.yml"
в этом файле conf есть все ваши большие имена и значения свойств.
Обновление: в Android O был удален предел имени системного свойства в 32 символа. Теперь вы можете иметь более длинные имена.
public class SystemProperties {
/**
* Android O removed the property name length limit, but com.amazon.kindle 7.8.1.5
* uses reflection to read this whenever text is selected (http://b/36095274).
*/
public static final int PROP_NAME_MAX = Integer.MAX_VALUE;
public static final int PROP_VALUE_MAX = 91;
...
}