zoukankan      html  css  js  c++  java
  • 判断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
    }
  • 相关阅读:
    Shell-17--break-exit-continue-shift
    Shell-16--函数
    Shell-14--awk
    TCP带外数据读写
    Linux网络编程-----Socket地址API
    log4j日志级别
    JNI-Test
    游戏服务器当中的唯一名设计方法
    String和bytes的编码转换
    base64的一个应用情景
  • 原文地址:https://www.cnblogs.com/bigben0123/p/4267045.html
Copyright © 2011-2022 走看看