实现有Root权限进行静默安装,没有root权限,或者拒绝授权root权限进行常规安装
2014-08-25 16:45
260 查看
实现Root权限下静默安装,获取不到root权限的情况下进行常规安装
由于工作需要,开发的程序需要进行ROOT权限下进行静默安装,但是实现静默安装后发现,如果用户拒绝授权Root权限的话,程序不会安装,而且以后所有推送的程序都不会安装,所以,公司要求没有获取到root权限要进行常规安装,想了很久找了很多方法都不行,最后我发现在执行完命令后停个几秒钟,再往下继续执行,就可以达到想要的效果。
代码如下:
/**
* 静默安装
* @param file
* @return
*/
public boolean slientInstall(File file) {
boolean result = false;
Process process = null;
OutputStream out = null;
try {
process = Runtime.getRuntime().exec("su");
//再次停3秒钟再往后执行,有获取到了root权限就会静默安装,没有获取到就会返回false,然后再去调用常规安装
Thread.sleep(3000);
out = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(out);
dataOutputStream.writeBytes("chmod 777 " + file + "\n");
dataOutputStream.writeBytes("LD_LIBRARY_PATH=/vendor/lib:/system/lib pm install -r " +file);
// 提交命令
dataOutputStream.flush();
// 关闭流操作
dataOutputStream.close();
out.close();
int value = process.waitFor();
// 代表成功
if (value == 0) {
result = true;
} else if (value == 1) { // 失败
result = false;
} else { // 未知情况
result = false;
}
} catch (Exception e) {
return false;
}
return result;
}
/**
* 安装APK文件
* @param apkfile APK文件名
* @param mContext
*/
public void installApk(Context mContext, File apkFile)
{
if (!apkFile.exists())
{
return;
}
// 通过Intent安装APK文件
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + apkFile.toString()), "application/vnd.android.package-archive");
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(i);
}
这是本人在网上的第一篇文章,有问题请明示,大家一起共同成长共同进步。
由于工作需要,开发的程序需要进行ROOT权限下进行静默安装,但是实现静默安装后发现,如果用户拒绝授权Root权限的话,程序不会安装,而且以后所有推送的程序都不会安装,所以,公司要求没有获取到root权限要进行常规安装,想了很久找了很多方法都不行,最后我发现在执行完命令后停个几秒钟,再往下继续执行,就可以达到想要的效果。
代码如下:
/**
* 静默安装
* @param file
* @return
*/
public boolean slientInstall(File file) {
boolean result = false;
Process process = null;
OutputStream out = null;
try {
process = Runtime.getRuntime().exec("su");
//再次停3秒钟再往后执行,有获取到了root权限就会静默安装,没有获取到就会返回false,然后再去调用常规安装
Thread.sleep(3000);
out = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(out);
dataOutputStream.writeBytes("chmod 777 " + file + "\n");
dataOutputStream.writeBytes("LD_LIBRARY_PATH=/vendor/lib:/system/lib pm install -r " +file);
// 提交命令
dataOutputStream.flush();
// 关闭流操作
dataOutputStream.close();
out.close();
int value = process.waitFor();
// 代表成功
if (value == 0) {
result = true;
} else if (value == 1) { // 失败
result = false;
} else { // 未知情况
result = false;
}
} catch (Exception e) {
return false;
}
return result;
}
/**
* 安装APK文件
* @param apkfile APK文件名
* @param mContext
*/
public void installApk(Context mContext, File apkFile)
{
if (!apkFile.exists())
{
return;
}
// 通过Intent安装APK文件
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + apkFile.toString()), "application/vnd.android.package-archive");
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(i);
}
这是本人在网上的第一篇文章,有问题请明示,大家一起共同成长共同进步。
相关文章推荐
- Android 获取Root权限之后的静默安装实现 代码示例分析&&源码下载
- Android获取Root权限之后的静默安装实现代码示例分析
- 连接被拒绝 因为没有授权此用户账户进行远程登录
- Android获取Root权限之后的静默安装实现代码示例分析
- android通过获取root权限实现静默安装、
- Android 获取Root权限之后的静默安装实现 代码示例分析&&源码下载
- android开发实现静默安装(root权限)
- 安卓静默安装之shell命令实现(需要root权限)
- android实现静默下载、静默安装、获取root权限并自动安装成系统APP、自启动
- android开发实现静默安装(root权限)
- Android静默安装实现方案,秒装(测试没有通过)和智能安装(实现)功能
- Android 获取Root权限之后的静默安装实现 代码示例分析
- android开发实现静默安装(root权限)
- android通过获取root权限实现静默安装、
- 关于远程桌面登陆提示“连接被拒绝,因为没有授权此用户账号进行远程登录”
- 获取root权限,实现静默安装,手机截屏
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- 如何在Visual Studio 2005或者Visual Studio 2008里实现拖动控件进行绝对定位?
- 【Android应用开发】-(18)静默方式实现批量安装卸载应用程序