仿茄子快传——获取安装应用列表信息
来源:互联网 发布:centos rpm snmp 编辑:程序博客网 时间:2024/04/27 15:31
以前在使用茄子的快传的时候,我们发现有一个功能是能发送安装了的apk文件,就觉得还挺有意思的,后来发现无非就是调用系统的API的,发现了之后也就觉得没有什么意思了,感觉不好玩了。不过后面我将会深入的了解这些api背后所做的一些事情的。
- 首先我们需要拿到PackageManager,也就是我们所说的包管理器
PackageManager packageManager = getPackageManager(); //这里有一个参数为0 ,是获取所有安装的应用,包括系统应用,第三方的应用 List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0); List<AppInfo> list = new ArrayList<>(); AppInfo appInfo; PackageInfo packageInfo; for(int index = 0; index < packageInfos.size(); index++) { appInfo = new AppInfo(); packageInfo = packageInfos.get(index); //获取安装应用的包名 appInfo.setPackageName(packageInfo.packageName); appInfo.setFilePath(packageInfo.applicationInfo.sourceDir); if(!TextUtils.isEmpty(appInfo.getFilePath())) { File apkFile = new File(appInfo.getFilePath()); appInfo.setAppSize(Formatter.formatShortFileSize(mActivity, apkFile.length())); } //获取应用的名称 appInfo.setAppName(packageInfo.applicationInfo.loadLabel(packageManager).toString()); //获取应用的图标,这里的图标的格式Drawable的 appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(packageManager)); list.add(appInfo); } Collections.sort(list, new Comparator<AppInfo>() { @Override public int compare(AppInfo lhsAppInfo, AppInfo rhsAppInfo) { String lhsName = lhsAppInfo.getAppName(); String rhsName = rhsAppInfo.getAppName(); return lhsName.compareTo(rhsName); } });
在上面我们可以看到一个挺有意思的东西,就是 packageInfo.applicationInfo.sourceDir,其实这个属性主要是用来获取应用的 apk 文件的,我们知道每个应用程序安装完成之后,都还会保存着一个应用安装包在手机中的,系统应用的 apk 文件存放在 /system/app 目录下的,那我们的自己安装的应用则会放在 /data/app/ 目录下的,有些可能不相信的,我们可以通过 debug 的方式来调试一下程序来看看具体怎么做的。
茄子快传其实也这样子做的很简单的,都是调用系统的api 来获取安装应用的信息,同时还可以获取到应用的apk文件。其实这是一个最基本的获取安装应用的信息,其实我们还可以获取应用的所申请的权限,然后注册的广播,然后注册的 服务、然后 Launch Activity等等一系列的东西。我们在接下来的时候的时候,就会仿照一下360手机卫视获取安装应用的一些信息等等。由于获取这些信息还是挺耗时的,我们因此建议将这个放到子线程里面去操作的。接下来的时候就非常简单的,我这里也不往下写了。
0 0
- 仿茄子快传——获取安装应用列表信息
- 仿茄子快传应用源码下载
- 仿茄子快传的一款文件传输应用
- Android仿茄子快传-实现面对面快传功能
- Android仿茄子快传-实现面对面快传功能
- 从”茄子快传”看应用程序如何获取手机已安装程序的apk文件
- 如何打造 茄子快传 这样一款文件传输应用
- 茄子快传使用测评
- Android如何实现茄子快传
- 茄子快传和腾讯全民Wifi配合使用
- android获取已安装应用信息(列表图标包名列表)
- 获取IOS应用安装列表
- 获取IOS应用安装列表
- 获取IOS应用安装列表
- 获取IOS应用安装列表
- 获取已安装应用列表
- 获取IOS应用安装列表
- 获取已安装应用列表
- PHP文件上传类(支持单文件上传,也支持多文件上传)
- LTE RRCConnectionReconfiguration
- 关于采用Unity 5.x 提供的增量式打包单个模型后AssetBundle doesn’t have main asset解决方法
- 高并发解决方案
- Basic SRVCC 基本SRVCC 信令流程
- 仿茄子快传——获取安装应用列表信息
- aSRVCC信令流程(振铃中SRVCC)
- 数据库sql语句笔试题--包含创建数据库、表、插入记录、查询等操作
- bSRVCC振铃前SRVCC信令流程
- EVS(Enhance Voice Services) Codec 增强语音服务编码
- 微信电话速率 VS VoLTE通话速率
- 微信电话语音质量 VS VOLTE语音质量
- Android 应用秒开效果
- RCS协议和说明文档列表