一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android实现静默安装的两种方法

时间:2017-04-27 编辑:简简单单 来源:一聚教程网

前言

一般情况下,Android系统安装apk会出现一个安装界面,用户可以点击确定或者取消来进行apk的安装。  但在实际的项目需求中,有一种需求,就是希望apk在后台安装(不出现安装界面的提示),这种安装方式称为静默安装。下面这篇文章就给大家介绍了两种方法来实现,下面来一起看看吧。

1、root权限静默安装实现

实现实际使用的是su pm install -r filePath命令。

核心代码如下:

 

 代码如下复制代码

protectedstaticvoidexcuteSuCMD() {

   Process process =null;

   OutputStream out =null;

   InputStream in =null;

   String currentTempFilePath ="/sdcard/QQ.apk";

   try{

   // 请求root

   process = Runtime.getRuntime().exec("su");

   out = process.getOutputStream();

   // 调用安装

   out.write(("pm install -r "+ currentTempFilePath +"\n").getBytes());

   in = process.getInputStream();

   intlen =0;

   byte[] bs =newbyte[256];

   while(-1!= (len = in.read(bs))) {

   String state =newString(bs,0, len);

   if(state.equals("Success\n")) {

    //安装成功后的操作

     }

    }

   }catch(IOException e) {

    e.printStackTrace();

   }catch(Exception e) {

    e.printStackTrace();

   }finally{

    try{

     if(out !=null) {

      out.flush();

      out.close();

     }

     if(in !=null) {

      in.close();

     }

    }catch(IOException e) {

     e.printStackTrace();

    }

   }

  }

 

2、非root权限提示用户安装,代码如下:

 

 代码如下复制代码

publicstaticvoidopenFile() {

  // 核心是下面几句代码

  if(!isHasfile()) {

   downLoadFile(url);

  }

  Intent intent =newIntent();

  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

  intent.setAction(android.content.Intent.ACTION_VIEW);

  intent.setDataAndType(

    Uri.fromFile(newFile("/sdcard/update/updata.apk")),

    "application/vnd.android.package-archive");

  mContext.startActivity(intent);

 }

 

热门栏目