Intereting Posts
Как определить видимость входного метода Picker без разрешения Accessibility TextInputLayout.setError () оставляет пустое пространство после устранения ошибки Почему мой ListView ничего не показывает? Android – Как отслеживать использование полосы пропускания процессом? Почему в этом случае говорят, что «растровое изображение не может быть разрешено к типу»? Android не создает файл Отладчик Eclipse «прыгает» пропускает важный код Ошибка Android SDK Могу ли я заставить пользователя согласиться с юридической оговоркой перед установкой приложения для Android? Различные макеты для горизонтального и вертикального для Android-приложения? Правильный способ создания кросс-платформенного RTMP-потокового / игрового приложения. Телефонный плагин livu? Ошибка компиляции исходного кода Android: «Попробуйте увеличить размер кучи с помощью опции java» -Xmx <size> » Как получить строку из разных локалей в Android? ClassNotFindException во время запуска Android-образца Эффективное навигация для старой платформы Как использовать одиночный игрок для рекламы и видео с помощью Google Android Android Exoplayer

Метаданные Android из манифеста, возвращающего null

У меня есть класс с одним методом, который пытается извлечь метаданные из манифеста. Все работает отлично, за исключением того, что пакет, который я создаю из информации приложения, возвращает нулевые значения

Вот код:

private int getCurrentVersion(){ int currVersion = 0; try { ApplicationInfo app = context.getPackageManager().getApplicationInfo(context.getPackageName(),PackageManager.GET_META_DATA); Bundle bundle = app.metaData; for (String key: bundle.keySet()) { Log.d ("TEST", key + " is a key in the bundle"); } Log.d("TEST","google: "+bundle.getString("com.google.android.gms.version")); Log.d("TEST","version: "+bundle.getString("dbVersion")); //currVersion = Integer.valueOf(bundle.getString("dbVersion")); currVersion = 1; } catch (NameNotFoundException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } return currVersion; } 03-05 18:53:23.818: D/TEST(31400): com.google.android.gms.version is a key in the bundle 03-05 18:53:23.818: D/TEST(31400): dbVersion is a key in the bundle 03-05 18:53:23.828: D/TEST(31400): google: null 03-05 18:53:23.828: D/TEST(31400): version: null 

Как вы можете видеть, я использую несколько журналов, чтобы увидеть, пуст ли пуст, но его нет.

Solutions Collecting From Web of "Метаданные Android из манифеста, возвращающего null"

В некоторых случаях вам нужно использовать метод getInt ():

 bundle.getInt("com.google.android.gms.version")); 

Потому что значение этих метаданных определяется как целое число.

 Log.d("TEST","google: "+bundle.getInt("com.google.android.gms.version")); 

Например, если значение, определенное в ваших метаданных, является строкой:

  <meta-data android:name="com.elenasys.a" android:value="abcXJ434" /> 

использовать:

  bundle.getString("com.elenasys.a")); 

Если это целое число:

  <meta-data android:name="com.elenasys.b" android:value="1234" /> 

Использовать getInt()

  bundle.getInt("com.elenasys.b"));