前言
一般情况下,Android系统安装apk会出现一个安装界面,用户可以点击确定或者取消来进行apk的安装。 但在实际的项目需求中,有一种需求,就是希望apk在后台安装(不出现安装界面的提示),这种安装方式称为静默安装。下面这篇文章就给大家介绍了两种方法来实现,下面来一起看看吧。
1、root权限静默安装实现
实现实际使用的是su pm install -r filePath
命令。
核心代码如下:
protected static void excuteSuCMD() { 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(); int len = 0; byte[] bs = new byte[256]; while (-1 != (len = in.read(bs))) { String state = new String(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权限提示用户安装,代码如下:
public static void openFile() { // 核心是下面几句代码 if (!isHasfile()) { downLoadFile(url); } Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType( Uri.fromFile(new File("/sdcard/update/updata.apk")), "application/vnd.android.package-archive"); mContext.startActivity(intent); }
总结
以上就是关于Android实现静默安装的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对的支持。