加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

获取android手机中已安装应用信息以及应用安装和卸载代码集合

发布时间:2020-12-15 00:16:49 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /** * 是否已经安装该应用 * @param context * @param apk_package 包名 * @return */ public static boolean isInstallApp(Context context,String a

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

/** 
     * 是否已经安装该应用 
     * @param context 
     * @param apk_package 包名 
     * @return 
     */  
    public static boolean isInstallApp(Context context,String apk_package) {  
        PackageInfo packageInfo;  
        try {  
            packageInfo = context.getPackageManager().getPackageInfo(  
                    apk_package,0);  
        } catch (NameNotFoundException e) {  
            packageInfo = null;  
            e.printStackTrace();  
        }  
        if(packageInfo !=null ){  
                return true;  
        }  
        return false;  
    }  
      
    /** 
     * 遍历一个路径下的文件夹内的指定文件 
     * @param Path 搜索目录 
     * @param Extension 扩展名(判断的文件类型的后缀名) 
     * @param IsIterative  是否进入子文件夹   
     * @return 
     */  
    public static final List<String> GetFiles(String Path,String Extension,boolean IsIterative)  {    
        List<String> apklist = new ArrayList<String>(); // 结果 List     
        try {  
            File[] files = new File(Path).listFiles();    
            for (int i = 0; i < files.length; i++) {    
                File f = files[i];    
                if (f.isFile()) {    
                    if (f.getPath() .substring(f.getPath().length() - Extension.length()) .equals(Extension)) // 判断扩展名     
                        apklist.add(f.getPath());    
                    if (!IsIterative)    
                        break;  //如果不进入子集目录则跳出     
                } else if (f.isDirectory() && f.getPath().indexOf("/.") == -1) // 忽略点文件(隐藏文件/文件夹)     
                    GetFiles(f.getPath(),Extension,IsIterative);  //这里就开始递归了     
            }    
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        }  
        return apklist;    
    }   
      
    /** 
     * 根据本地路径安装apk 
     * @param apk_url 
     */  
    public static void installApkFromLocalPath(Context context,String apk_url){   
        try {  
            Intent intent = new Intent(Intent.ACTION_VIEW);   
            intent.setDataAndType(Uri.fromFile(new File(apk_url)),"application/vnd.android.package-archive");   
            context.startActivity(intent);   
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        }  
    }   
    /** 
     * 卸载应用 
     * @param context 
     * @param apk_pkg 包名 
     */  
    public static void unInstallApkFromPackage(Context context,String apk_pkg){   
        try {  
            Intent intent = new Intent(Intent.ACTION_DELETE);   
            intent.setData(Uri.parse("package:"+apk_pkg));  
            context.startActivity(intent);   
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        }  
    }   
    /** 
     * 根据包名打开另外一个应用 
     * @param context 
     * @param apk_pkg 包名 
     */  
    public static void openApkFromPackage(Context context,String apk_pkg){   
        try {  
            Intent intent = new Intent(Intent.ACTION_VIEW);     
            intent.setComponent(new ComponentName(context,apk_pkg));     
            context.startActivity(intent);    
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
        }  
    }   

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读