2015-01-03 4 views
0

Я получаю имена для моих установленных приложений с кодом ниже и использую их, чтобы узнать, доступны ли какие-либо обновления для этого приложения.Правильное имя установленных приложений

Но иногда предоставляется неверное имя (MX Speler вместо MX Player), в результате чего обновления не обнаружены.

Есть ли лучший код, который я могу/должен использовать?

{ 
    final PackageInfo pi = installedInfo != null ? installedInfo : downloadedInfo; 

    final PackageManager pm = getApplicationContext().getPackageManager(); 
    ApplicationInfo ai; 
     try { 
       ai = pm.getApplicationInfo(pi ??, 0); //How to set the name of the installed application? 
      } catch (final NameNotFoundException e) { 
       ai = null; 
      } 
      final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)"); 
      System.out.println("Application name : "+ applicationName); 
} 

ответ

0

Вы не должны использовать этикетки, как это может быть различным для каждого языка или изменены на каждом обновлении. Вы должны полагаться только на код приложения id (packageId), так как этот идентификатор остается неизменным на весь срок службы приложения.

+0

Привет, Марцин, как я могу использовать это в своем коде ?, не могли бы вы привести пример, пожалуйста? – Bjorn

+0

см. Мой отредактированный код, но как установить имя (pi). Не могли бы вы посмотреть? – Bjorn

Смежные вопросы