我已经创建了带有图像的自定义软键盘,我的任务是希望将选定的图像发送到用户当前选择的应用程序(例如googlehangout),但如果我使用google,我可以使用包管理器获取已安装的应用程序包名称和图标环聊应用程序意味着我必须获取谷歌环聊应用程序包名称,并且从我的自定义键盘我必须将选定的图像直接共享到环聊聊天对话作为消息我如何解决这个问题。
最佳答案
您可以获取所有已安装的软件包详细信息。
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
类包含包的详细信息
关于android - 如何以编程方式获取Android中当前选定的应用程序包名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670334/