你可以使用PackageManager类的getActivityInfo()方法来获取指定包名的应用信息。如果应用未安装,则会抛出PackageManager.NameNotFoundException异常。你可以在catch块中处理此异常,并返回null。以下是一个示例代码:

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;

public class AppUtils {

    public static String getLauncherNameByPackageName(Context context, String packageName) {
        PackageManager packageManager = context.getPackageManager();
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        intent.setPackage(packageName);
        ActivityInfo[] activityInfos = null;
        try {
            activityInfos = packageManager.queryIntentActivities(intent, 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        if (activityInfos != null && activityInfos.length > 0) {
            ComponentName componentName = new ComponentName(packageName, activityInfos[0].name);
            try {
                ActivityInfo activityInfo = packageManager.getActivityInfo(componentName, 0);
                return activityInfo.loadLabel(packageManager).toString();
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

你可以在你的Activity或Fragment中调用该方法,传入应用的包名即可获取应用的桌面名称:

String packageName = "com.example.app";
String launcherName = AppUtils.getLauncherNameByPackageName(this, packageName);
if (launcherName != null) {
    // 应用已安装
    // 处理应用的桌面名称
} else {
    // 应用未安装
    // 返回null或进行其他处理
}
``
android开发 给个接口根据包名获取指定app的桌面名称未安装则返回null

原文地址: https://www.cveoy.top/t/topic/i0VM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录