2017-01-29 4 views
0

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

final PackageManager pm = getPackageManager(); 
//get a list of installed apps. 
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 

for (ApplicationInfo packageInfo : packages) { 
    Log.d(TAG, "Installed package :" + packageInfo.packageName); 
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
} 

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

+0

Рассмотрит добавление тега языка и указав платформу, которую вы используете (предположительно android) –

+0

да я использую android studio 2.1.3 – rocky

+0

Добавить теги: android и другие, потому что люди не могут видеть этот вопрос. – josedlujan

ответ

1

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

Имейте в виду, что моя функция будет возвращать только первое имя пакета, который соответствует (вы можете изменить эту логику очень легко):

public String getPackNameByAppName(String name) { 
    PackageManager pm = context.getPackageManager(); 
    List<ApplicationInfo> l = pm.getInstalledApplications(PackageManager.GET_META_DATA); 
    String packName = “”; 
    for (ApplicationInfo ai : l) { 
     String n = (String)pm.getApplicationLabel(ai); 
     if (n.contains(name) || name.contains(n)){ 
      packName = ai.packageName; 
     } 
    } 

    return packName;  
} 

используется метод TextUtils.isEmpty, чтобы проверить есть ли результат или не.

+0

, но этот код не подходит для многих приложений. – rocky

+0

Он не открыл настройки – rocky

+0

packName должен быть инициализирован тем, что ?? – rocky

0

Ниже приведен код, который поможет получить имя пакета всех установленных приложений

final PackageManager pkgmanager = getPackageManager(); 
String TAG = "Application Info"; 

//Return a list of installed apps. 
List<ApplicationInfo> packages = pkgmanager.getInstalledApplications(PackageManager.GET_META_DATA); 

for (ApplicationInfo pkgInfo : packages) { 
    Log.d(TAG, "Installed package :" + pkgInfo .packageName); 
    Log.d(TAG, "Source dir : " + pkgInfo .sourceDir); 
} 

Надеется, что это помогает

Summved

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