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

我想从应用程序包名称中获取应用程序名称。有人请告诉我我怎么能得到这个。


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());

        }

    }

}


繁华开满天机
浏览 798回答 4
4回答

慕慕森

您可以使用PackageManagerclass获得ApplicationInfo:final PackageManager pm = getApplicationContext().getPackageManager();ApplicationInfo ai;try {&nbsp; &nbsp; ai = pm.getApplicationInfo( this.getPackageName(), 0);} catch (final NameNotFoundException e) {&nbsp; &nbsp; ai = null;}final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");这将返回<application>清单清单标签中定义的应用程序名称。

幕布斯7119047

尝试这个final String packageName = "my.application.package"PackageManager packageManager= getApplicationContext().getPackageManager();String appName = (String) packageManager.getApplicationLabel(packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA));并替换packageName为您的包裹全名。您可以使用where 用于Activity并使用getActivity()作为片段来获取packageName 。mContext.getPackageName()mContext = yourActivityName.this

精慕HU

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

万千封印

看来您能够收到添加新软件包的事件,这是一个非常简单的概念,它可以获取有关该软件包的所有相关信息,例如此类信息就是应用程序名称,因此这里就是概念->您的设备包管理器具有与之相关的所有信息,因此,只需为其创建一个对象,它将为您提供与包名称相关的所有信息。->您还应该记住,该意图为您提供了“ package:real_package_name”,因此首先您必须首先通过溢漏(我用过的)或任何其他简单的String实现获得真实名称。->这是代码,希望您能得到想要的,我也提供有关如何获取应用程序名称,应用程序图标,应用程序版本,应用程序版本代码等的信息。&nbsp; &nbsp; public class NewAppReciver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {&nbsp; &nbsp; if(intent.getAction().equals("android.intent.action.PACKAGE_ADDED")){&nbsp; &nbsp; String[] a=intent.getData().toString().split(":");&nbsp; &nbsp; String packageName=a[a.length-1];&nbsp; &nbsp; List<PackageInfo> packageInfoList =&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; context.getPackageManager().getInstalledPackages(0);&nbsp; &nbsp; for (int i = 0; i < packageInfoList.size(); i++) {&nbsp; &nbsp; &nbsp; &nbsp; PackageInfo packageInfo = packageInfoList.get(i);&nbsp; &nbsp; &nbsp; &nbsp; if(packageInfo.packageName.equals(packageName)){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String appName = packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String appVersion = packageInfo.versionName;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int appVerCode = packageInfo.versionCode;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Drawable app_icon = packageInfo.applicationInfo.loadIcon(context.getPackageManager());&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;}&nbsp; &nbsp;&nbsp;}但是在卸载应用程序时,您只能获得软件包名称,因为在卸载时,系统会删除所有其他信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android