Android检测手机是否安装某个应用

判断手机已安装某程序的方法:

private boolean isAvilible(Context context, String packageName){
          final PackageManager packageManager = context.getPackageManager();//获取packagemanager
          List< packageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
          List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
         //从pinfo中将包名字逐一取出,压入pName list中
              if(pinfo != null){
              for(int i = 0; i < pinfo.size(); i++){
                  String pn = pinfo.get(i).packageName;
                  pName.add(pn);
              }
          }
          return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
    } 

判断后的逻辑:

//已安装,打开程序,需传入参数包名:"com.tencent.mm"
if(isAvilible(this, "com.skype.android.verizon")){
                Intent i = new Intent();
                ComponentName cn = new ComponentName("com.tencent.mm",
                        "com.tencent.mm.WeiXinActivity");
                i.setComponent(cn);
                startActivityForResult(i, RESULT_OK);
            }
//未安装,跳转至market下载该程序
else {
      Uri uri = Uri.parse("market://details?id=com.tencent.mm");//id为包名

    // 直接从指定网址下载      // Uri uri = Uri.parse("http://dldir1.qq.com/foxmail/weixin521android400.apk");
      Intent it = new Intent(Intent.ACTION_VIEW, uri);
      startActivity(it);
      }
时间: 2024-04-01 22:29:54

Android检测手机是否安装某个应用的相关文章

android 查询手机已安装的第三方应用程序

1.获取手机上已安装第三方的应用的应用名称和包名并打印 private void queryFilterAppInfo() { PackageManager pm = this.getPackageManager(); // 查询所有已经安装的应用程序 List<ApplicationInfo> listAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); Collections.s

如何用js检测手机是否安装某个app

问题描述 如果本地安装了app那么直接打开,否则苹果要跳转到app-store,安卓则要跳到对应的市场 解决方案 一 //html代码中 的 a 标签,以微信为例,默认的是调用weixin scheme,去打开本机的微信,如果没有则跳转到相应连接 <a href="weixin://" class="btn-download">立即打开</a> // 为btn-download 绑定事件,如果在500ms内,没有解析到协议,那么就会跳转到下载

iOS 检测手机是否安装SIM卡

[CTSIMSupportGetSIMStatus() isEqualToString:kCTSIMSupportSIMStatusNotInserted] 可以判断是否插入了sim卡. 需要CoreTelephony.framework. /** * 检测是否有SIM卡 * [CTSIMSupportGetSIMStatus() isEqualToString:kCTSIMSupportSIMStatusNotInserted] */ extern NSString* const kCTSMS

Android 检查手机上是否安装了指定的软件(根据包名检测)

Android检查手机上是否安装了指定的软件(根据包名检测) /** * 检查手机上是否安装了指定的软件 * @param context * @param packageName * @return */ public static boolean isAvilible(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager(); List<Pa

【Android】不弹root请求框检测手机是否root

由于项目需要root安装软件,并且希望在合适的时候引导用户去开启root安装,故需要检测手机是否root. 最基本的判断如下,直接运行一个底层命令.(参考https://github.com/Trinea/android-common/blob/master/src/cn/trinea/android/common/util/ShellUtils.java) 也可参考csdn http://blog.csdn.net/fm9333/article/details/12752415 1 /** 2

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

1.检测app是否安装 检测app是否安装的方法有很多,以下列举几种.基本都是利用packageManager来完成. a.通过packagemanager获取已经安装的包,然后对比得出是否安装.代码: public boolean isAppInstalled(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager(); List<Package

在Android手机上安装linux系统

在anroid手机中安装fedora系统.记住不只是教你安装fedora系统. 需要的备注与软件 1.一个已经root的Android手机,记住是root后的,root后的,root后的.(重要的事情说3遍) 2.终端模拟器 :用于运行 shell 脚本(这是安装在Android手机上的apk) 3.BusyBox :用于提供 shell 命令的支持(这是安装在Android手机上的apk) 4.fedora系统的映像文件(下载地址:http://sourceforge.net/projects

Android 在同一个手机上安装多个相同的apk,便于调试

Android studio 在同一个手机上安装多个相同的apk 原文地址:http://yj.itrydo.com/posts/iKJryXL9zkfSGRTZk 先看效果: 1.在我使用ecslipse的时候我一直在研究"Android studio 在同一个手机上安装多个相同的apk"这个问题,可是每次都不能如自己所愿,一个最笨的方法就是修改项目的包名,但明显这是一个不靠谱的事情,从去年开始接触android studio,终于找到了怎么在一个手机上安装多个相同的apk了,这还得

如何通过wifi在android手机上安装调试应用

如何通过wifi在android手机上安装调试应用 1. 首先还是要打开手机的usb调试选项,并通过usb线连接手机.2. 然后执行“adb tcpip 5555”,把adb从usb模式切换到tcpip模式.正确的回显信息是:“restarting in TCP mode port: 5555”.5555可以是任何未占用的端口号.3. 再执行“adb connect <手机的WLAN IP>:5555”,连接到手机.正确的回显信息是:“connected to <手机的WLAN IP&g