您的位置:首页 > 移动开发 > Android开发

Android—java实现apk的静默安装、普通安装

2017-06-02 19:53 375 查看
执行静默安装,正常状态下,前台无任何反应,APP在后台完成安装。该功能一般也被称为“后台安装”,实现该功能需要ROOT

执行普通安装,将会弹出确认安装的提示框,与在文件管理器中打开APK文件实现安装

静默安装

private void silentInstall(final String path) {
new Thread(new Runnable() {
@Override
public void run() {
DataOutputStream out = null;
BufferedReader errorStream = null;
try {
//申请su权限
Process process = Runtime.getRuntime().exec("su");
out = new DataOutputStream(process.getOutputStream());
//执行pm install 命令
String command = "pm install -r " + path + "\n";
out.write(command.getBytes(Charset.forName("UTF-8")));
out.flush();
out.writeBytes("exit\n");
out.flush();
process.waitFor();
errorStream = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String msg = "";
String line;
while ((line = errorStream.readLine()) != null) {
msg += line;
}
Log.i(TAG, "SilentInstall: "+msg);
} catch (Exception e) {
Log.e(TAG, e.getMessage(), e);
} finally {
try {
if (out != null) {
out.close();
}
if (errorStream != null) {
errorStream.close();
}
} catch (IOException e) {
Log.e(TAG, e.getMessage(), e);
}
}
}
}).start();
}


普通安装

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.fromFile(new File(apkPath)),
"application/vnd.android.package-archive"
);
context.startActivity(intent);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: