从包名中获取应用程序名

新手上路,请多包涵

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

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

原文由 stuti 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 978
1 个回答

在下面试试这个,它对我有用。

 public static ArrayList<ApplicationInfo> getLaunchableInstalledApps(Context context){

    final PackageManager pm = context.getPackageManager();
    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    ArrayList<ApplicationInfo> list = new ArrayList<>();
    for (ResolveInfo resolveInfo:pm.queryIntentActivities(intent, PackageManager.GET_META_DATA)){
        try {
            ApplicationInfo app = context.getPackageManager().getApplicationInfo(resolveInfo.activityInfo.packageName, 0);
            list.add(app);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    if (cacheAppsList.isEmpty()){
        cacheAppsList.addAll(list);
    }

    return list;
}

原文由 dont findme 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题