有时候我们需要软件实现静默安装,但是Android并未提供相应的API,然而我们知道命令行安装android的时候是不会提示用户的,所有要实现这个功能,我们就可以从执行命令行的方式实现。android提供的安装命令是
pm install package
ps : pm install /sdcard/android.apk
但是执行这个命令需要前提条件,需要是系统级应用或者具有ROOT权限。我们先介绍通过ROOT权限的方式执行。
1,通过获取ROOT权限静默安装APK
看代码:
new Thread() {
public void run() {
Process process = null;
OutputStream out = null;
InputStream in = null;
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();
}
}
}
}.start();
当然也可以通过NDK实现,代码就不放了。
第二种方式,同样是通过pm命令实现,不用请求ROOT,但是需要系统的签名。这里附上模拟器的的签名,用这个签名的APK安装在模拟器上可以实现不请求ROOT而静默安装的效果。
//首先在manifest标签加入
android:sharedUserId="android.uid.system"
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
new Thread() {
public void run() {
Process process = null;
InputStream in = null;
try {
// 请求root
process = Runtime.getRuntime().exec("pm install -r " + currentTempFilePath + "\n");
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 (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}.start();
分享到:
相关推荐
主要介绍了Android 静默安装实现方法的相关资料,静默安装的方法,静默安装就是绕过安装程序时的提示窗口,直接在后台安装,需要的朋友可以参考下
如果用过一些手机助手的朋友都知道,手机助手下载其他软件的更新程序后会自动静默更新。APK静默安装是指实现了在APK文件...压缩包里有两种实现apk静默安装的方法说明和详细的操作文档与源码。 涉及模块&技术 静默安装
导入jar包。即可使用PackAgeManager的installPackage方法进行静默安装。注意复写回调来回馈安装结果。
android应用后台安装,静默安装的代码实现方法。以及编译出来的apk
提供android系统静默安装的实现方法,提供基于android4.0的PackageInstaller修改,并且提供测试Demo。亲测通过!!
1、root权限静默安装实现 实现实际使用的是su pm install -r filePath命令。 核心代码如下: protected static void excuteSuCMD() { Process process = null; OutputStream out = null; I
Android实现静默安装APK的两种方法.doc
如果用过一些手机助手的朋友都知道,手机助手下载其他软件的更新程序后会自动静默更新。APK静默安装是指实现了在APK文件...压缩包里有两种实现apk静默安装的方法说明和详细的操作文档与源码。 涉及模块&技术 静默安装
非root下 实现静默安装 多种方式。
android apk 的安装方式,看了这篇文档,希望对你有点帮助!
通过反射实现静默安装,卸载功能。Demo代码在Android6.0系统测试可以正常卸载,安装应用。Demo中除了通过反射方法外,还提供了其他两种方法安装,卸载应用。
实现这个功能第一个想到的方法就是静默安装,由于广告机已经root,静默安装比较顺利,安装app的主要代码如下: /* @pararm apkPath 等待安装的app全路径,如:/sdcard/app/app.apk **/ private static boolean ...
静默安装就是无声无息的在后台安装apk,没有任何界面提示。智能安装就是有安装界面,但全部是自动的,不需要用户去点击...下面脚本之家小编给大家介绍下Android 静默安装和智能安装的实现方法,感兴趣的朋友一起看看吧
本文实例讲述了android实现静默安装与卸载的方法。分享给大家供大家参考。具体如下: 方法1:【使用调用接口方法,由于安装卸载应用程序的部分API是隐藏的,所以必须下载Android系统源码,在源码下开发并编译之后...
内附apk 实现说明 是在linx系统环境下 源码下MM 编译实现方式
在android设备root或者应用内置为系统应用时,可以实现静默安装和卸载。 PackageUtils.java中有提供了静默安装和卸载的方法。