从包名中获取应用程序名称

stu*_*uti 78 android

我想从应用程序包名称中获取应用程序名称.有人请告诉我如何才能得到这个.

public class AppInstalledListener extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        String action = intent.getAction();
        if(action.equals("android.intent.action.PACKAGE_ADDED")){
            Logger.debug("DATA:"+intent.getData().toString());
        }
        if(action.equals("android.intent.action.PACKAGE_REMOVED")){
            Logger.debug("DATA:"+intent.getData().toString());
        }
        if(action.equals("android.intent.action.PACKAGE_REPLACED")){
            Logger.debug("DATA:"+intent.getData().toString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Xio*_*ion 188

您可以使用PackageManager类来获取ApplicationInfo:

final PackageManager pm = getApplicationContext().getPackageManager();
ApplicationInfo ai;
try {
    ai = pm.getApplicationInfo( this.getPackageName(), 0);
} catch (final NameNotFoundException e) {
    ai = null;
}
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
Run Code Online (Sandbox Code Playgroud)

这将返回<application>其清单标签中定义的应用程序名称.

  • 它让我知道所有的时间我alrady有包名只想知道包名的名字 (3认同)
  • [请小心,因为从 Android 11 (API 30) 开始,您将需要在清单中使用 `&lt;queries&gt;`。](https://developer.android.com/training/package-visibility) 如果您想查询任何包,您可以改为使用权限“android.permission.QUERY_ALL_PACKAGES”。 (2认同)

Xar*_*mer 33

试试这个

final String packageName = "my.application.package"
PackageManager packageManager= getApplicationContext().getPackageManager();
String appName = (String) packageManager.getApplicationLabel(packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA));
Run Code Online (Sandbox Code Playgroud)

packageName用您的包裹全名替换.

你可以得到的packageName使用mContext.getPackageName()其中mContext = yourActivityName.this的活动和getActivity()的片段.


Nik*_*dva 10

 public static String getAppNameFromPkgName(Context context, String Packagename) {
    try {
        PackageManager packageManager = context.getPackageManager();
        ApplicationInfo info = packageManager.getApplicationInfo(Packagename, PackageManager.GET_META_DATA);
        String appName = (String) packageManager.getApplicationLabel(info);
        return appName;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return "";
    }
}
Run Code Online (Sandbox Code Playgroud)