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系统中,静默安装APK(Silent Install)是指在用户无感知的情况下自动安装应用程序。这通常需要系统的特殊权限,因为出于安全考虑,Android系统默认不允许非系统应用进行后台安装。在Android 10中,由于...
在Android系统中,静默安装(Silent Install)是指在用户无感知的情况下自动安装APK应用的过程。在Android 4.4(KitKat)版本中,这个功能主要应用于企业级设备管理和批量部署应用的场景。下面我们将详细探讨如何在...
Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new ...
在Android平台上,有时候我们可能需要在无需用户交互的情况下自动执行某些操作,比如静默安装APK文件。这就涉及到了Android的辅助功能(Accessibility Services)和模拟点击的技术。本篇文章将详细解析如何通过激活...
在本文中,我们将探讨如何在不获取Android设备Root权限的情况下实现静默安装APK。 静默安装APK的方法主要分为两种:通过Adb(Android Debug Bridge)和通过自定义服务。Adb是Android开发工具包中的一个重要组成部分...
1. 由于权限限制,普通应用在Android 10及更高版本上进行静默安装可能需要用户手动授权,或者通过系统级别的服务来实现。 2. 在进行静默操作时,必须确保有正确的权限,并且处理好可能出现的异常,例如权限被拒绝、...
这种操作通常需要设备具有root权限,因为正常的Android安全机制限制了非系统应用的静默安装。Root权限是Android系统中的超级用户权限,获取它可以让用户对系统有更深度的控制,包括修改系统文件、安装需要特殊权限的...
在Android系统中,批量静默安装程序是一种自动化部署应用的方式,尤其在企业级环境中非常有用。这种方式能够避免在安装过程中出现用户交互界面,比如权限请求提示框,从而提高效率。以下是对这个主题的详细说明: 1...
在Android系统中,APK自动静默安装并自动重新启动是一项技术操作,通常涉及到系统级权限和特定的脚本编写。这项技术常用于批量设备管理、应用自动化测试或企业内部应用部署等场景。以下是关于这个主题的详细知识讲解...
在Android系统中,静默安装和卸载APK是指在用户无感知的情况下,通过编程方式自动执行安装或卸载应用程序的过程。这种方式常用于系统维护、自动化测试或者在企业级设备管理中,以便批量处理应用程序的部署。在本教程...
在Android系统中,静默安装APK是指在用户无感知的情况下自动进行的安装过程,通常需要设备具有root权限。静默安装APK适用于自动化部署、批量更新应用等场景。本教程将详细介绍如何实现Android定时静默安装APK,并在...
在Android系统中,APK是应用程序的包文件格式,它包含了所有必要的代码、资源和配置文件,以便在设备上运行。APK静默安装是指在用户无感知的情况下,通过编程方式自动化安装应用的过程,通常用于企业级应用部署或...
在Android系统中,静默安装(Silent Install)和静默卸载(Silent Uninstall)是指在不显示用户界面或获取用户明确许可的情况下自动安装或卸载应用程序。这对于批量设备管理和企业级应用部署尤其重要。在Android 7.0...
在Android系统中,静默安装APK是一种无需用户交互就能自动完成应用安装的过程,这对于批量部署、企业级应用分发等场景非常有用。本篇将深入解析Android4.4.2(KitKat)版本中的PackageInstaller系统源代码,探讨如何...
在Android系统中,静默安装APK(Silent Installation)是指在用户无感知的情况下自动安装应用程序。这通常在企业级设备管理或者自动化测试环境中非常有用,因为它可以避免手动交互,提高部署效率。以下是对静默安装...
1. **权限获取**:在Android 6.0(API级别23)及以上版本,安装应用需要`INSTALL_PACKAGES`权限,这是一个系统权限,一般应用无法直接获得。因此,静默安装通常需要设备处于root状态或者使用具有设备管理器权限的...
总结而言,文章详细介绍了在Android平台上实现静默安装APK的两种技术路径,涉及了权限控制、系统集成及命令行操作等多方面知识,对于有深度定制需求的开发者而言,具有较高的参考价值。然而,考虑到这些方法的局限性...
4. **处理权限**:对于Android 6.0及以上版本,如果需要静默安装,应用需要具有`INSTALL_PACKAGES`权限,这通常仅适用于系统应用或经过签名验证的开发者应用。否则,用户交互将是必要的。 5. **开发者选项**:在非...
在Android系统中,静默安装是指在用户无感知的情况下,后台自动执行的APK安装过程。这通常在自动化测试、企业级应用部署或者系统维护时非常有用。本篇将深入探讨如何实现Android的静默安装,并基于源码进行改造。 ...
在Android系统中,静默安装(Silent Installation)是指在用户无感知的情况下自动安装APK应用的方法。这对于系统集成、批量设备配置或者自动化测试场景非常有用。静默安装避免了手动点击确认安装对话框,提高了效率...