Использование метаданных AndroidManifest.xml в приложении
Порой возникает необходимость использовать настройки, влияющие на работу всего приложения, и задающиеся при сборке. Или же мы создаем класс, который планируем использовать в нескольких проектах, однако для него так же необходимо делать настройки. Логично такие настройки поместить в файл манифеста приложения.
В файле AdnroidManifest.xml существует специальный тип meta-data для этого. Это поле может хранить булев тип, целый, строковой или с плавающей точкой и в дальнейшем может быть получено соответствующим методом с приведением типов.
Для примера рассмотрим часть AndroidManifest.xml
1 2 3 4 5 6 7 8 |
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="myAPIKey" android:value="sample_value" /> </application> |
Здесь мы поместили значение sample_value в поле myAPIKey. Для того, чтобы получить значение в нашей программе используем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
String TAG = "Example Meta-Data"; try { ApplicationInfo ai = getPackageManager().getApplicationInfo( getPackageName(), PackageManager.GET_META_DATA); Bundle bundle = ai.metaData; String myAPIKey = bundle.getString("myAPIKey"); System.out.println("API KEY : " + myAPIKey); } catch (NameNotFoundException e) { Log.e(TAG, "Failed to load meta-data, NameNotFound: " + e.getMessage()); } catch (NullPointerException e) { Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage()); } |