是写代码吗?
思路就是,先获取手机内安装的应用,在判断是否有百度地图这款软件。
首先,写一个应用的实体类,里面包括引用的图标,名称,版本等:
public class PackageInf { private String appName; //应用名称 private String packageName; //应用包名 private String versionName; //版本名 private int versionCode; //版本号 private Drawable appIcon; //图标 public PackageInf(String appName, String packageName) { this.appName = appName; this.packageName = packageName; } //省略get set方法。 }
然后,查找所有应用。
//获取手机上所有安装软件的名称、包名private List loadPackageInfo() { List<PackageInfo> packages = getActivity().getPackageManager().getInstalledPackages(0); List allPackList = new ArrayList(); //遍历,获取应用名和包名 for (PackageInfo p : packages) { if ((p.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { String appPackage = p.packageName; String appName = p.applicationInfo.loadLabel(getActivity().getPackageManager()).toString(); PackageInf packageInf = new PackageInf(appName, appPackage, null, appVersion, appIcon); allPackList.add(packageInf); } } return allPackList;}
最后,你只需要判断PackageInf 类里的appName或者packageName,如果有百度地图,那就说明用户安装了,否则就是没安装~