Android实现静默安装的两种方法
程序员文章站
2023-12-16 17:12:28
前言
一般情况下,android系统安装apk会出现一个安装界面,用户可以点击确定或者取消来进行apk的安装。 但在实际的项目需求中,有一种需求,就是希望apk在后台安装...
前言
一般情况下,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实现静默安装的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对的支持。