Android AppUtil通用类
1.整体分析
1.1.先看一下源码,可以直接Copy。
public class AppUtil {
/**
* 获取当前程序包名
*
* @param context 上下文
* @return 程序包名
*/
public static String getPackageName(Context context) {
return context.getPackageName();
}
/**
* 获取程序版本信息
*
* @param context 上下文
* @return 版本名称
*/
public static String getVersionName(Context context) {
String versionName = null;
String pkName = context.getPackageName();
try {
versionName = context.getPackageManager().getPackageInfo(pkName, 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
Log.e("VersionInfo", "Exception", e);
}
return versionName;
}
/**
* 获取程序版本号
*
* @param context 上下文
* @return 版本号
*/
public static int getVersionCode(Context context) {
int versionCode = -1;
String pkName = context.getPackageName();
try {
versionCode = context.getPackageManager().getPackageInfo(pkName, 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
Log.e("VersionInfo", "Exception", e);
}
return versionCode;
}
/**
* 判断是否安装某个应用
*
* @param context 上下文
* @param packageName 包名
* @return 是否安装
*/
public static boolean isAvailable(Context context, String packageName) {
final PackageManager packageManager = context.getPackageManager();//获取packagemanager
List<PackageInfo> pInfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
//从pinfo中将包名字逐一取出,压入pName list中
if (pInfo != null) {
for (int i = 0; i < pInfo.size(); i++) {
String pn = pInfo.get(i).packageName;
if (pn.equals(packageName))
return true;
}
}
return false;
}
}
1.2.主要方法
- 获取APP包名
- 获取APP版本信息
- 获取APP版本号
- 判断是否安装某个应用
2.局部分析
2.1.如何获取APP包名

传入一个上下文,直接可以获取包名。
2.2.如何获取APP版本信息

传入一个上下文,直接可以获取版本名称。
2.3.如何获取APP版本号

2.4.判断是否安装某个应用

这里需要知道那个应用的包名,和上下文
不过通常常用应用的包名都是公开的,比如支付宝微信QQ什么的,就不用担心这个packageName。
3.应用实例
3.1.我调用了这四个函数到一个APP中,执行效果如下

Android AppUtil通用类的更多相关文章
- Android 意图通用类 IntentUrl
1.整体分析 1.1.源代码如下,可以直接Copy. public class IntentUtil { /** * 打开链接 * 根据设置判断是用那种方式打开 * * @param context ...
- Android Config通用类来记录信息
1.整体分析 1.1.源代码,可以直接Copy. public class Config { private static int M = 1024 * 1024; private volatile ...
- Android 网络通用类 NetUtil
1.整体分析 1.1.源代码如下,可以直接Copy. public class NetUtil { /** * 用户是否连接网络 * * @param context Context */ publi ...
- Android 文件管理器通用类 FileUtil
1.整体分析 1.1.源代码如下,可以直接Copy. public class FileUtil { private FileUtil() { } //****系统文件目录************** ...
- Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法
Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...
- poi导出excel通用类
一.关键的通用类public class PoiExportUtils { private static HSSFWorkbook workBook; public PoiExportUtils ...
- NPOI MVC 模型导出Excel通用类
通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...
- MVC NPOI Linq导出Excel通用类
之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
随机推荐
- u-boot分析(九)----nand flash初始化|nand flash读写分析
u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们 ...
- linux脚本的source和reload
什么时候用reload?有些程序, 当你修改了配置文件后, 需要重启之后, 配置才能生效,但是 这个程序又不能 重启 , 如大公司的httpd服务 因此, 当你修改完了之后, 需要在不重启服务的情况下 ...
- 爆料!如何在Visual Studio 2017上体验五星级云服务
2017 年 3 月初,号称宇宙最强 IDE 之一的 Visual Studio 发布了最新的 2017 版本,遥想自己使用 VC++ 6.0 的当年,看着现在已然稀疏的头发,真是一入 IT 似海深, ...
- centos6.5_64bit-禅道安装及数据库操作
linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道. 从7.3版本开始,linux一键安装包分为32位和64位两个包,请大家根据操作系统的情况下载 ...
- Redis 基础概念和命令
Redis 是什么 Redis是一种基于键值对(key-value)的NoSQL数据库. 为什么使用Redis 速度快 Redis的时间颗粒度一般是微秒,慢查询的默认值是10 000微秒,即10毫秒. ...
- 笨办法学Python(三十三)
习题 33: While 循环 接下来是一个更在你意料之外的概念: while-loop``(while 循环).``while-loop 会一直执行它下面的代码片段,直到它对应的布尔表达式为 Fal ...
- class类重定义
C++项目中如果一个头文件被多个文件包含,#include"xxx.h",将可能导致头文件里面定义的类被多次编译,解决方法是加编译指示: #pragma once //告诉编译器只 ...
- 实例详解Django的 select_related
在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能.本文通过一个简单的例子详解这两个函数的作用.虽然Q ...
- Mybatis-generator自动生成
第一步:导入架包 <build> <plugins> <plugin> <groupId>org.mybatis.generator</group ...
- 关于Linux部分版本无法安装Chrome的问题
在想要yum安装Chrome浏览器后发现安装没有相应的包,在查询后得知Chrome已经对Redhat和Centos等部分版本停止支持, 所以这些新版的系统中直接安装就显得有些困难了,那么从网上找到了一 ...