Android静默安装和静默卸载接口封装
来源:互联网 发布:太空工程师 编程教程 编辑:程序博客网 时间:2024/06/10 19:00
/** * @param filePath: the full path of which apk you will install. * @return 0: install success; 1: filePath error; 2: some exception occurred. */ public int installSlient(String filePath){ File file = new File(filePath); mPkgName = getApkPkgName(filePath); if (filePath == null || filePath.length() == 0 || (file == null || file.length() <= 0 || !file.exists() || !file.isFile())) { Log.d(TAG, "Error! FilePath: " + filePath); return 1; } String[] args = { "pm", "install", "-r", filePath }; ProcessBuilder processBuilder = new ProcessBuilder(args); Process process = null; BufferedReader successResult = null; BufferedReader errorResult = null; StringBuilder successMsg = new StringBuilder(); StringBuilder errorMsg = new StringBuilder(); int result; try { process = processBuilder.start(); successResult = new BufferedReader(new InputStreamReader( process.getInputStream())); errorResult = new BufferedReader(new InputStreamReader( process.getErrorStream())); String s; while ((s = successResult.readLine()) != null) { successMsg.append(s); } while ((s = errorResult.readLine()) != null) { errorMsg.append(s); } } catch (IOException e) { e.printStackTrace(); result = 2; } catch (Exception e) { e.printStackTrace(); result = 2; } finally { try { if (successResult != null) { successResult.close(); } if (errorResult != null) { errorResult.close(); } } catch (IOException e) { e.printStackTrace(); } if (process != null) { process.destroy(); } } if (successMsg.toString().contains("Success") || successMsg.toString().contains("success")) { result = 0; } else { result = 2; } Log.d(TAG, "successMsg:" + successMsg + ", ErrorMsg:" + errorMsg); return result;} /** * @param pkgName: the application package name which you will uninstall. * @return 0: uninstall success; 1: package name error; 2: some exception occurred. */ public int uninstallSlient(String pkgName){ mPkgName = pkgName; if (pkgName == null || pkgName.equals("")){ Log.d(TAG, "Error! pkgName: " + pkgName); return 1; } String[] args = { "pm", "uninstall", pkgName }; ProcessBuilder processBuilder = new ProcessBuilder(args); Process process = null; BufferedReader successResult = null; BufferedReader errorResult = null; StringBuilder successMsg = new StringBuilder(); StringBuilder errorMsg = new StringBuilder(); int result; try { process = processBuilder.start(); successResult = new BufferedReader(new InputStreamReader( process.getInputStream())); errorResult = new BufferedReader(new InputStreamReader( process.getErrorStream())); String s; while ((s = successResult.readLine()) != null) { successMsg.append(s); } while ((s = errorResult.readLine()) != null) { errorMsg.append(s); } } catch (IOException e) { e.printStackTrace(); result = 2; } catch (Exception e) { e.printStackTrace(); result = 2; } finally { try { if (successResult != null) { successResult.close(); } if (errorResult != null) { errorResult.close(); } } catch (IOException e) { e.printStackTrace(); } if (process != null) { process.destroy(); } } if (successMsg.toString().contains("Success") || successMsg.toString().contains("success")) { result = 0; } else { result = 2; } Log.d(TAG, "successMsg:" + successMsg + ", ErrorMsg:" + errorMsg); return result; }
public String getApkPkgName(String filePath) { if (TextUtils.isEmpty(filePath)) return null; PackageManager pm = mContext.getPackageManager(); PackageInfo info = pm.getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES); if (info != null) { ApplicationInfo appInfo = info.applicationInfo; String packname = appInfo.packageName; return packname; } else { return null; } }
阅读全文
0 0
- Android静默安装和静默卸载接口封装
- Android静默安装和静默卸载
- Android--静默安装和静默卸载
- Android静默安装和静默卸载
- Android静默安装和静默卸载
- android实现静默卸载和静默安装
- Android静默安装和静默卸载
- Android静默安装和静默卸载
- 静默安装和静默卸载
- android 静默安装和卸载
- android静默安装和卸载
- Android 静默安装和卸载
- Android 静默安装和静默卸载(系统层)
- android静默安装、静默卸载apk方法
- android静默安装与静默卸载
- android apk静默安装和卸载
- android 实现静默安装和卸载
- android apk静默安装和卸载
- 第十周周四总结
- ACM——错排(hdu1465)
- git使用的简单说明
- liunx下vim最常用的快捷键总结
- Unity_Lua_语法基础
- Android静默安装和静默卸载接口封装
- Http协议详解②
- ES5数组对象的forEach, map, filter方法
- Leetcode 算法题05
- 二维数组逆序
- 栈
- BZOJ 1416: [NOI2006]神奇的口袋 高精度
- js判断文档是否存在
- Java(7-4)