I specified a meta-data in my manifest.xml like this:
<meta-data android:value="5555555555" android:name="foo"></meta-data>
When accessing the metadata like this:
ActivityInfo ai = act.getPackageManager().getActivityInfo(componentName, PackageManager.GET_META_DATA);
Object value = (Object)ai.metaData.get(key);
this value gets interpreted as int and – more importantly – incorrectly interpreted (1260588259).
Since the type is determined automatically by the build system ( booleans, ints, floats, and strings ) I wondered if there is any way to force the data type to string.
I tried adding a space at the end ( "5555555555 "), but then the value gets interpreted as 5.5555553E9 float! ).
I also tried using getString instead of get, but then null is returned.
Any ideas? TIA.
Putting an escaped space in front of the number seems to work:
The escaped space doesn’t appear in the value returned by
get().I have no idea quite how this works, if I’m honest.
If you want something documented and therefore more reliable you can always put your string value as a resource and refer to it: