Android读取第三方应用列表并卸载
来源:互联网 发布:算法设计与分析难不难 编辑:程序博客网 时间:2024/06/06 17:33
工具类功能如标题所示,实现效果如上图,具体实现见代码。
/** * 安装一个apk文件 */public static void install(Context context, File uriFile) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(uriFile), "application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);}/** * 卸载一个app */public static void uninstall(Context context, String packageName) { //通过程序的包名创建URI Uri packageURI = Uri.parse("package:" + packageName); //创建Intent意图 Intent intent = new Intent(Intent.ACTION_DELETE, packageURI); //执行卸载程序 context.startActivity(intent);}/** * 获取已安装非系统应用 * * @return */public static List<AppInfo> scanInstallApp(Context mContext) { List<AppInfo> appInfos = new ArrayList<>(); PackageManager pm = mContext.getPackageManager(); // 获得PackageManager对象 List<ApplicationInfo> listAppcations = pm .getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); Collections.sort(listAppcations, new ApplicationInfo.DisplayNameComparator(pm));// 字典排序 for (ApplicationInfo app : listAppcations) { if ((app.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {//非系统程序 appInfos.add(getAppInfo(app, pm)); }//本来是系统程序,被用户手动更新后,该系统程序也成为第三方应用程序了 else if ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { appInfos.add(getAppInfo(app, pm)); } } return appInfos;}/** * 构造一个AppInfo对象 ,并赋值 */private static AppInfo getAppInfo(ApplicationInfo app, PackageManager pm) { AppInfo appInfo = new AppInfo(); appInfo.setAppName(pm.getApplicationLabel(app).toString());//应用名称 appInfo.setAppIcon(app.loadIcon(pm));//应用icon appInfo.setPkgName(app.packageName);//应用包名,用来卸载 File file = new File(app.sourceDir); float size = file.length(); DecimalFormat df = new DecimalFormat("#.00"); appInfo.setAppSize(df.format(size / (1024 * 1024)) + "M");//应用大小,M单位,保留两位小数 PackageInfo packageInfo = null; try { packageInfo = pm.getPackageInfo(app.packageName, 0); long lastUpdateTime = packageInfo.lastUpdateTime;//应用最近一次更新时间 appInfo.setUpdateDate(TimeUtil.time2Ago(lastUpdateTime));//将毫秒时间对比当前时间转换为多久以前 } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return appInfo;}
阅读全文
0 0
- Android读取第三方应用列表并卸载
- android快捷卸载第三方应用
- Android之快捷卸载第三方应用
- Android 获取手机第三方应用列表
- android 第三方应用读取彩信附件
- android 获取第三方应用程序包名并启动
- android 获取第三方应用程序包名并启动
- android 获取第三方应用程序包名并启动
- android获取所有应用信息,判断系统应用或第三方应用,监听应用安装和卸载
- android 调用第三方应用
- Android调用第三方应用
- android安装第三方应用
- Android---启动第三方应用
- Android 启动第三方应用
- android 读取本地安装app 包名并启动第三方app
- android过滤第三应用列表
- Android应用内调用第三方应用
- Android应用内启动第三方应用
- [RK3288][Android6.0] 调试笔记 --- 如何修改/dev/ttySx后面的数字号
- 线程同步的方式
- PLSQL与SQL执行有什么不同
- Electron: HTML + Javascript 开发桌面应用程序
- Oracle查询最近几天,每小时归档日志产生数量--脚本
- Android读取第三方应用列表并卸载
- MathJax 基础 (1):基础语法
- Windows 函数API大全
- Windows Server 2008将在今年具备TLS 1.2功能
- Tree(LCA模板)
- ssh 客户端登陆报 No further authentication methods available
- WebView与JS的交互和优化
- mybatis里#{}和${}的区别
- java--接口(interface\implements)