• 判断Android应用是否安装、运行


    http://www.open-open.com/lib/view/open1409191580182.html

     

    本文介绍3个方法,判断手机上是否安装了某应用、该应用是否正在运行、获取手机某个APK文件的安装Intent.启动该Intent就可以直接安装该APK。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /**
     * 判断应用是否已安装
     
     * @param context
     * @param packageName
     * @return
     */ 
    private boolean isInstalled(Context context, String packageName) { 
        boolean hasInstalled = false
        PackageManager pm = context.getPackageManager(); 
        List<PackageInfo> list = pm 
                .getInstalledPackages(PackageManager.PERMISSION_GRANTED); 
        for (PackageInfo p : list) { 
            if (packageName != null && packageName.equals(p.packageName)) { 
                hasInstalled = true
                break
            
        
        return hasInstalled; 
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /**
     * 获取文件安装的Intent
     
     * @param file
     * @return
     */ 
    private Intent getFileIntent(File file) { 
        Uri uri = Uri.fromFile(file); 
        String type = "application/vnd.android.package-archive"
        Intent intent = new Intent("android.intent.action.VIEW"); 
        intent.addCategory("android.intent.category.DEFAULT"); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        intent.setDataAndType(uri, type); 
        return intent; 
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /**
     * 判断应用是否正在运行
     
     * @param context
     * @param packageName
     * @return
     */ 
    private boolean isRunning(Context context, String packageName) { 
        ActivityManager am = (ActivityManager) context 
                .getSystemService(Context.ACTIVITY_SERVICE); 
        List<RunningAppProcessInfo> list = am.getRunningAppProcesses(); 
        for (RunningAppProcessInfo appProcess : list) { 
            String processName = appProcess.processName; 
            if (processName != null && processName.equals(packageName)) { 
                return true
            
        
        return false
    }
  • 相关阅读:
    scala 基础
    Feign拦截器和解码器
    SpringCloud对使用者透明的数据同步组件
    POI SXSSF API 导出1000万数据示例
    HDFS文件浏览页返回上级目录功能
    Spring Security OAuth2.0
    Spring Security实现OAuth2.0授权服务
    Spring Security实现OAuth2.0授权服务
    Zookeeper学习笔记:简单注册中心
    Eclipse集成Git做团队开发:分支管理
  • 原文地址:https://www.cnblogs.com/bigben0123/p/4267045.html
Copyright © 2020-2023  润新知