Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
来源:互联网 发布:淘宝客做推广有用吗 编辑:程序博客网 时间:2024/05/22 03:45
在安卓中,我们看到了快牙、茄子快传等软件的功能的使用。实现端对端的进行传输数据,根据最近的需求了解和检测,并且在网上疯狂的进行搜索了一下。我研究了一下高仿茄子快传的开源代码,发现里面展示应用的列表发现。它不是获取手机已经安装的系统应用和用户自己安装的应用进行获取。于是,我找到了一个获取系统自带的应用和安装的应用的文件和文件路径等相关信息。
1、步骤一:创建一个实体类,名字叫做AppInfo,具体请看下列代码:
package com.yoyoyt.encrypt.packagelist;import android.graphics.drawable.Drawable;/** * 作者:刘净辉 * 日期:2017/6/8 11:21 */public class AppInfo { //应用图标 private Drawable icon; //应用的名字 private String appName; //应用程序的大小 private String apkSize; //表示用户程序 private boolean isUserApp; //存储的位置. private boolean isSD; private String packageName; public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public String getApkSize() { return apkSize; } public void setApkSize(String apkSize) { this.apkSize = apkSize; } public boolean isUserApp() { return isUserApp; } public void setUserApp(boolean isUserApp) { this.isUserApp = isUserApp; } public boolean isSD() { return isSD; } public void setSD(boolean isSD) { this.isSD = isSD; } @Override public String toString() { return "AppInfo{" + "appName='" + appName + '\'' + ", apkSize='" + apkSize + '\'' + ", isUserApp=" + isUserApp + ", isSD=" + isSD + '}'; }}
2、步骤二:我们创建一个工具类,名字叫做AppInfoParser,详细操作请看如下代码:
package com.yoyoyt.encrypt.packagelist;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.graphics.drawable.Drawable;import android.text.format.Formatter;import java.io.File;import java.util.ArrayList;import java.util.List;/** * 作者:刘净辉 * 日期:2017/6/8 11:20 */public class AppInfoParser { private static String tag = "AppInfoParser"; public static List<AppInfo> getAppInfos(Context context){ //首先获取到包的管理者 PackageManager packageManager = context.getPackageManager(); //获取到所有的安装包 List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0); ArrayList<AppInfo> appInfos = new ArrayList<>(); for (PackageInfo installedPackage : installedPackages) { AppInfo appInfo = new AppInfo(); //程序包名 String packageName = installedPackage.packageName; appInfo.setPackageName(packageName); //获取到图标 Drawable icon = installedPackage.applicationInfo.loadIcon(packageManager); appInfo.setIcon(icon); //获取到应用的名字 String appName = installedPackage.applicationInfo.loadLabel(packageManager).toString(); appInfo.setAppName(appName); //获取到安装包的路径 String sourceDir = installedPackage.applicationInfo.sourceDir; File file = new File(sourceDir); //获取到安装apk的大小 long apkSize = file.length(); //格式化apk的大小 appInfo.setApkSize(Formatter.formatFileSize(context,apkSize)); int flags = installedPackage.applicationInfo.flags; //判断当前是否是系统app if((flags & ApplicationInfo.FLAG_SYSTEM) !=0){ //那么就是系统app appInfo.setUserApp(false); }else{ //那么就是用户app appInfo.setUserApp(true); } if((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ //那么当前安装的就是sd卡 appInfo.setSD(true); }else{ //那么就是手机内存 appInfo.setSD(false); } appInfos.add(appInfo); } return appInfos; }}
3、就这样,我们已经获取到了应用的相关信息,最后,展示的代码就不贴了。
阅读全文
1 0
- Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- 安卓Launcher之获取手机安装的应用列表
- Android之获取安装应用和进程的相关信息
- 获取应用和安装手机相关信息:应用版本号,手机型号,手机品牌,Android系统版本号
- 获取应用和安装手机相关信息:应用版本号,手机型号,手机品牌,Android系统版本号
- Android获取系统应用及安装应用的权限列表
- Android获取系统应用及安装应用的权限列表
- Android获取手机和应用的相关信息
- Android学习之获取系统应用信息列表的实现
- android 获取设备上安装的非系统应用信息
- 安卓开发获取当前手机应用信息的方法
- 获取手机已安装应用的包名等信息
- 为什么安卓的APP都要读取手机中已安装的应用列表
- 展示系统应用和用户应用的列表
- android获取应用信息,判断应用来源,监听应用的安装和卸载
- android 获取系统已经安装的应用
- android 中获取手机中安装的应用并做跳转的相关分析研究
- C++ 11 —— 继承
- L1-017. 到底有多二
- Java新特性--可变参数
- javascript 学习笔记(一)
- 自定义WebView
- Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- Jekyll中Sass的使用
- Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- 《数据结构学习与实验指导》3-5:求链式线性表的倒数第K项
- js事件监听
- 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)
- Maven工程的创建
- 第8篇-JAVA面向对象-设计模式Ⅳ
- Spring(4、AOP)