如何以编程方式获取 android 中当前选定的应用程序包名称?

how to get currently selected application package name in android programmatically?

我已经创建了带有图像的自定义软键盘,我的任务是想将选定的图像发送到用户当前选择的应用程序,例如 google 环聊,但我可以使用包管理器获取已安装的应用程序包名称和图标就像那样,如果我使用 google 环聊应用程序意味着我必须获得 google 环聊应用程序包名称,并且从我的自定义键盘我必须将所选图像直接共享到环聊聊天对话作为消息我该如何解决这个问题。

try it...

String packageName = getApplicationContext().getPackageName();

来自activity

String appPackage = currentContext.getPackageName();

String appPackage = getApplicationContext().getPackageName();

您可以获得所有已安装包的详细信息。

 public ArrayList<PackageInfoStruct> getInstalledApps(Activity mActivity) {
    ArrayList<PackageInfoStruct> res = new ArrayList<PackageInfoStruct>();
    List<PackageInfo> packs = mActivity.getPackageManager()
            .getInstalledPackages(0);

    for (int i = 0; i < packs.size(); i++) {
        PackageInfo p = packs.get(i);
        PackageInfoStruct newInfo = new PackageInfoStruct();
        newInfo.appname = p.applicationInfo.loadLabel(
                mActivity.getPackageManager()).toString();
        newInfo.pname = p.packageName;
        newInfo.datadir = p.applicationInfo.dataDir;
        newInfo.versionName = p.versionName;
        newInfo.versionCode = p.versionCode;
        newInfo.icon = p.applicationInfo.loadIcon(mActivity
                .getPackageManager());
        res.add(newInfo);
    }
    return res;
}

public class PackageInfoStruct {
    String appname = "";
    String pname = "";
    String versionName = "";
    int versionCode = 0;
    Drawable icon;
    String datadir = "";
}

致电getInstalledApps

ArrayList<PackageInfoStruct> installedPackageDetails = getInstalledApps(getActivity());

您可以使用上述方法显示已安装应用程序的列表,并且在选定的项目上您可以查看每个选定项目的详细信息。 PackageInfoStruct class 包含包裹

的详细信息