Я определил метаданные в своем manifest.xml как это:
<meta-data android:value="5555555555" android:name="foo"></meta-data>
При доступе к метаданным как это:
ActivityInfo ai = act.getPackageManager().getActivityInfo(componentName, PackageManager.GET_META_DATA);
Object value = (Object)ai.metaData.get(key);
это значение интерпретируется как интервал и - что еще более важно - неправильно interepreted (1260588259).
Так как тип определяется автоматически системой сборки (булевские переменные, ints, плавания и строки), я задался вопросом, существует ли какой-либо способ вынудить тип данных представить в виде строки.
Я пытался добавить пространство в конце ("5555555555"), но тогда значение интерпретируется как 5.5555553E9 плавание!).
Я также пытался использовать getString вместо, добираются, но тогда пустой указатель возвращается.
Какие-либо идеи? TIA.
Установка сбежавшего пространства перед числом, кажется, работает:
<meta-data android:name="foo" android:value="\ 1234567890"/>
сбежавшее пространство не отображается в стоимости, возвращенном GET ()
.
Я понятия не имею совсем как это работает, если я честен.
Если вы хотите что-то документированное и, следовательно, более надежно вы всегда можете поместить ваше строковое значение в качестве ресурса и обратиться к нему:
<meta-data android:name="foo" android:resource="@string/mynumber"/>
Вместо того, чтобы пробел, попробуйте использовать часть пунктуации, которые не должны иметь роли в числовом значении, как толстой кишки, и посмотрите, если это поможет.