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 ...
随机推荐
- ArcMap如何修改地图坐标系统
有时候,地图投影坐标需要作出修改,使得符合要求,不然空间参考不一样无法进行进一步的操作,分析等!下面介绍arcgis地图投影坐标的修改! 1.首先,将地图数据导入,这里我导入的是广西的边界图bound ...
- Linux CentOS下部署Java Web项目
本文讲解如何在Linux CentOS下部署Java Web项目的步骤. 一.环境准备: (1)Linux CentOS (2)apache-tomcat-9.0.10 (3)XShell 二.启动t ...
- helm深入学习
Helm把Kubernetes资源(比如deployments.services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库.通过chart仓库可用来存储和分享c ...
- 数据结构与算法分析java——线性表2(ArrarList )
ArrayList ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, C ...
- Hybris开发环境的license计算实现
每隔30天,必须重新执行一次initialize命令把本地所有数据全部清掉然后重新build,需要花费一些时间. 显示在console里的license信息通过license.jsp展示: 剩余的li ...
- python图形库(1)
python有很好图形库cv2(包含很多图形处理的算法),pylab(绘图工具模块) 这两个“模块”是肯定要配置的. 安装这两个模块可用了我不少时间. pylab它不是一个包,而是 numpy, sc ...
- 【[TJOI2018]碱基序列】
题目 为什么没人用\(SAM\)啊 我们先把原来的模式串建一遍\(SAM\),之后我们就可以求出\(SAM\)上每一个节点的\(|endpos|\)就可以知道每一个子串出现的次数了,也就是在模式串上的 ...
- eclips新建Maven Web项目
一.创建项目 1.Eclipse中用Maven创建项目 上图中Next 2.继续Next 3.选maven-archetype-webapp后,next 4.填写相应的信息,Packaged是默认创建 ...
- fast rcnn的实例
http://www.cnblogs.com/louyihang-loves-baiyan/p/4906690.html https://saicoco.github.io/object-detect ...
- ASP.NET中刷新分页
1,第一次全部把数据加载到内存中,然后再做分页,性能差,不推荐. 2,GridView自带分页 3,AspNetPager分页控件 这个是第三分控件需要下载,很好用 4,自己写分页 前三种就不介绍如 ...