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

时间:2016-01-08 05:49:25

标签: android sendmessage ime android-package-managers custom-keyboard

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

3 个答案:

答案 0 :(得分:1)

iFile = popen("zcat my.tar.gz | tar xf -", "r");

String packageName = getApplicationContext()。getPackageName();

答案 1 :(得分:1)

来自活动

String appPackage = currentContext.getPackageName();

String appPackage = getApplicationContext().getPackageName();

答案 2 :(得分:1)

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

 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类包含包

的详细信息