检索android是否安装某个APP

原创 2015年07月09日 17:22:33
今天和大家分享如何判断手机上是否安装了XXX.apk。
因为国外项目在打开地图的时候一定要使用gGoogle map,像这种打开第三方软件的,android都会采用Intent进行跳转,然后根据ACTION判断类型,弹出一个选项框。但是客户非要指定Google map,所以在跳转的时候就要进行筛选,其实就是根据APK的包名进行筛选以Google map 为例~

Google map的包名为com.google.android.apps.maps,如果你想知道其他的,直接百度下就好了。值得注意的是,如果手机上没存在Google map,程序会崩溃。所以在做的时候得规避下这种错误,抛出一个Tomast。
if (checkApkExist(getActivity(),
                                        "com.google.android.apps.maps")) {
                                    Intent i = new Intent(
                                            Intent.ACTION_VIEW,
                                            Uri.parse("http://ditu.google.cn/maps?hl=zh&mrt=loc&q="
                                                    + (Double
                                                            .parseDouble(mLocation
                                                                    .getLongitude())
                                                            + "," + Double
                                                                .parseDouble(mLocation
                                                                        .getLongitude()))));
                                    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                                            & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                                    i.setClassName(
                                            "com.google.android.apps.maps",
                                            "com.google.android.maps.MapsActivity");
                                    startActivity(i);
                                } else {
                                    Toast.makeText(getActivity(),
                                            "Please download google map",
                                            Toast.LENGTH_LONG);
                                }
boolean checkApkExist(Context context, String packageName) {
        if (packageName == null || "".equals(packageName)) {
            return false;
        }
        try {
            context.getPackageManager().getApplicationInfo(packageName,
                    PackageManager.GET_UNINSTALLED_PACKAGES);
            return true;
        } catch (NameNotFoundException e) {
            return false;
        }
    }

另附上一个检索所有的APK的代码:

final PackageManager packageManager = getActivity().getPackageManager();//获取packagemanager   
List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息   
    if(pinfo != null){   
    for(int i = 0; i < pinfo.size(); i++){   
        String packName = pinfo.get(i).packageName;   
        Log.d("info", "-->"+packName);  
    }   
} 

再写文章的时候又想起是否要检测下是否在sd卡上,所以又从网上找到了一段代码:

private void isInstallOnSd(Context context,String name){  
    PackageManager pm=context.getPackageManager();  
    ApplicationInfo appInfo;  
    try {  
        appInfo = pm.getApplicationInfo(name, 0);  
        if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {  
               // App on sdcard  
            Log.d("info", "app on sd");  
        }  
    } catch (NameNotFoundException e) {  
        e.printStackTrace();  
    }   
}  

检索网络资源,抓取信息 So电影APP

  • 2016年01月09日 14:08
  • 1.49MB
  • 下载

android判断APP是否第一次打开

  • 2017年08月08日 13:31
  • 17.25MB
  • 下载

android 在webapp中判断native app是否安装并直接打开

常常有这样的场景,咱们开发出来的Native-APP需要在Web-APP中进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码。但往往我们都是直接给推广图片加了一个下载链接(App Sto...

Android 判断APP是否安装和引导下载实现

介绍  项目中需要引入腾讯手机管家做安全防护功能,因此需要检测用户手机是否安装了腾讯手机管家,以此来引导用户下载手机管家,这个功能其实也很简单。首先需要拿到手机管家的包名,不用多说,包名是APP的唯一...

Android App调用没有安装的apk

  • 2016年05月27日 17:05
  • 29.69MB
  • 下载

【Android】检测app是否安装、安装并打开的方法

1、检测app是否安装       检测app是否安装的方法有很多,以下列举几种。基本都是利用packageManager来完成。       a、通过packagemanager获取已经安装的包,然...

Android获取手机安装APP列表

  • 2017年03月18日 15:24
  • 27.91MB
  • 下载

App中根据多个字段检索功能总结

简述:今天在做App功能时,有个检索功能,想要实现一个检索输入框,不论输入什么,检索实现的功能。则是根据界面上显示的所有字段都可以模糊检索。 界面如下: ...

快速部署一个django app用于信息检索

在日常的工作中,比如有时候我们会对一批人员进行管理,对一批第三方企业进行管理,对一批机器进行管理,他们用统一的字段就可以表示,而且我们可以很方便的进行信息检索和增删改查,节约我们的时间,提高效率,事半...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:检索android是否安装某个APP
举报原因:
原因补充:

(最多只允许输入30个字)