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
    }
  • 相关阅读:
    script:查看历史sql执行信息
    爱在watir(1)----一切从搭讪开始
    最简单的视音频播放演示样例7:SDL2播放RGB/YUV
    Git flow的分支模型与及经常使用命令简单介绍
    操作系统开发之——打开A20
    阿牛的EOF牛肉串-记忆化搜索或动态规划
    LintCode-Copy Books
    Android:Unable to resolve target ‘android-8’问题解决
    编程规范(一 之kmalloc,fflush,fclose,char_init)
    androidannotations的background和UiThread配合使用參考
  • 原文地址:https://www.cnblogs.com/bigben0123/p/4267045.html
Copyright © 2011-2022 走看看