1、普通模式安装,调用系统Intent,代码如下:
public void install(Context context, String filePath) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + filePath), "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); }
2、静默安装
(1)、静默安装需要系统应用安装权限,需要在AndroidManifest.xml中添加:
a.)安装权限:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
b.) 系统权限:
android:sharedUserId="android.uid.system"
(2)、实现代码
静默安装代码如下,实际是通过pm install -r 命令安装。
注意:该函数最好在新建的线程中运行并通过handler发送安装结果给主线程,否则安装时间较长会导致ANR。
public String install(String apkAbsolutePath){ String[] args = { "pm", "install", "-r", apkAbsolutePath }; String result = ""; ProcessBuilder processBuilder = new ProcessBuilder(args); Process process = null; InputStream errIs = null; InputStream inIs = null; try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); int read = -1; process = processBuilder.start(); errIs = process.getErrorStream(); while ((read = errIs.read()) != -1) { baos.write(read); } baos.write("\n".getBytes()); inIs = process.getInputStream(); while ((read = inIs.read()) != -1) { baos.write(read); } byte[] data = baos.toByteArray(); result = new String(data); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (errIs != null) { errIs.close(); } if (inIs != null) { inIs.close(); } } catch (IOException e) { e.printStackTrace(); } if (process != null) { process.destroy(); } } return result; }
3,使用系统sign key进行签名后安装,或者push到/system/app/下面。
相关推荐
Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new ...
android实在获得root权限应用静默安装
实现android定时安装静默apk,自动在后台安装,安装完成后自动启动,需要root权限
android 7.0 非root下 具有system权限下 实现静默安装 静默卸载 的多种实现方式
批量安装apk程序,安装过程不弹提示框,需要将apk程序放到/system/app目录下
Android10静默安装APK,卸载APP,需要系统权限,编译到priv-app下, 参考文章:http://t.csdn.cn/UrQQZ 部分API或者引用没有的可以去掉,不影响使用
通过系统root权限实现android系统的静默安装以及安装成功后自动重启
1、正常安装——有安装界面,由系统自带的packageinstaller.apk应用处理安装及卸载过程的界面。 2、系统权限下静默安装——无安装界面,其实也是Google Play的安装方式,当然也是有实现方法的。 3、ROOT下完全静默...
android 实现静默安装小例子 需获得root权限
android 系统 app 后台安装,无任何界面提示,也不需要给用户任何提示。安装成功后,桌面上会显示app应用图表
Android静默安装apk的Demo。引入了TrineaAndroidCommon。手机需要root。
1、root权限静默安装实现 实现实际使用的是su pm install -r filePath命令。 核心代码如下: protected static void excuteSuCMD() { Process process = null; OutputStream out = null; I
关于静默安装可见apk-root权限静默安装。 4、PackageUtils Android包相关工具类,可用于(root)安装应用、(root)卸载应用、判断是否系统应用等,如: install(Context, String) 安装应用,如果是系统应用或已经root...
支持安装方式 1.启动系统安装界面正常安装安装。...静默安装到/system/app中,需要root权限。 卸载方式 1.利用系统卸载界面PackageUninstalActivity来卸载。 2.卸载安装到/system/app/下的内置应用。
静默安装主要分为以下几种方式: 一、在ROOT过的机器上,在App中使用pm install指令安装APK: // 申请su权限 Process process = Runtime.getRuntime().exec(su); dataOutputStream = new ...
实现apk更新和静默安装,获取root进行静默安装比较简单: 1,申请root权限Runtime.getRuntime().exec("su"); 2,通过数据输出流DataOutputStream写入pm install命令; 3,最后获取Process进程的返回值int i =...
android 实现自我自动静默卸载 妈妈再也不用担心我是流氓了 部分手机安装失败。本人三星i9108可以 小米安装失败。不知道为什么。同个程序。可能是小米没root,但是代码里面没有涉及root相关的 。只是修改了应用权限 ...
本工具可以对debug的apk文件进行系统签名,实现一些系统级app的功能,例如:app静默升级,修改系统时间,时区等功能