Skip to content

Commit 9e3ff7e

Browse files
committed
[commit] add AppUItls
1 parent d4cea09 commit 9e3ff7e

File tree

3 files changed

+125
-4
lines changed

3 files changed

+125
-4
lines changed

README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,22 @@
44
* 1.将常用功能模块做成工具类
55
* 2.将常用第三方框架封装成工具类
66
* 3.收集一些高效的正确的代码片段避免下次踩坑
7-
- 还在努力维护中,暂时不加入依赖仓库中,待代码经过检验,功能完善再加入到依赖中
8-
- 大部分参考一些技术文章或者开源项目源码,未经测试,有Bug请<a href="https://github.com/h4de5ing/AndroidCommon/issues">反馈</a>
9-
- 如果你有更好的封装,请提交<a href="https://github.com/h4de5ing/AndroidCommon/pulls">Pull request</a>
7+
- 能力一般,水平有限,难免有Bug,如果有任何问题,请<a href="https://github.com/h4de5ing/AndroidCommon/issues">反馈</a>
8+
- 如果写的更好,请提交<a href="https://github.com/h4de5ing/AndroidCommon/pulls">Pull request</a>
109

1110
## app Module中的类:
1211
MainActivity.java 测试项目中的主类
1312
HandlerActivity.java Handler的正确使用方式事例
1413

1514
## library Module中的类:
1615

16+
- AppUtils.java 应用相关工具
17+
* getAppName 获取应用名称
18+
* getAppIcon 获取应用图标
19+
* getAppDate 获取应用更新日期
20+
* getAppSize 获取应用大小
21+
* getAppApk 获取应用apk文件
22+
1723
- CipherUtils.java 加密工具
1824
* md5Encode:md5加密
1925
* base64Encode:Base64加密
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package com.code19.library;
2+
3+
import android.content.Context;
4+
import android.content.pm.ApplicationInfo;
5+
import android.content.pm.PackageInfo;
6+
import android.content.pm.PackageManager;
7+
import android.graphics.drawable.Drawable;
8+
9+
import java.io.File;
10+
11+
/**
12+
* Create by h4de5ing 2016/5/18 018
13+
* ps:这个工具类部分参考了郭霖博客中的一篇文章
14+
*/
15+
public class AppUtils {
16+
/**
17+
* 获取应用名称
18+
*
19+
* @param packageName 应用程序包名
20+
* @param context 包管理器
21+
* @return 返回获取到的应用程序名称
22+
*/
23+
public static String getAppName(String packageName, Context context) {
24+
PackageManager pm = context.getPackageManager();
25+
String appName = null;
26+
try {
27+
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
28+
appName = String.valueOf(pm.getApplicationLabel(applicationInfo));
29+
} catch (PackageManager.NameNotFoundException e) {
30+
e.printStackTrace();
31+
}
32+
return appName;
33+
}
34+
35+
/**
36+
* 获取应用图标
37+
*
38+
* @param packageName 应用程序包名
39+
* @param context 包管理器
40+
* @return 返回获取到的应用程序图标
41+
*/
42+
43+
public static Drawable getAppIcon(String packageName, Context context) {
44+
PackageManager pm = context.getPackageManager();
45+
Drawable appIcon = null;
46+
try {
47+
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
48+
appIcon = applicationInfo.loadIcon(pm);
49+
} catch (PackageManager.NameNotFoundException e) {
50+
e.printStackTrace();
51+
}
52+
return appIcon;
53+
}
54+
55+
/**
56+
* 获取应用程序最后更新的时间
57+
*
58+
* @param packageName 应用程序包名
59+
* @param pm 包管理器
60+
* @return 返回获取到的应用程序更新时间
61+
*/
62+
public long getAppDate(String packageName, PackageManager pm) {
63+
long lastUpdateTime = 0;
64+
try {
65+
PackageInfo packageInfo = pm.getPackageInfo(packageName, 0);
66+
lastUpdateTime = packageInfo.lastUpdateTime;
67+
} catch (PackageManager.NameNotFoundException e) {
68+
e.printStackTrace();
69+
}
70+
return lastUpdateTime;
71+
}
72+
73+
/**
74+
* 获取应用的大小
75+
*
76+
* @param packageName 应用程序包名
77+
* @param pm 包管理器
78+
* @return 返回获取到的应用程序大小
79+
*/
80+
public long getAppSize(String packageName, PackageManager pm) {
81+
long appSize = 0;
82+
try {
83+
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
84+
appSize = new File(applicationInfo.sourceDir).length();
85+
} catch (PackageManager.NameNotFoundException e) {
86+
e.printStackTrace();
87+
}
88+
return appSize;
89+
}
90+
91+
/**
92+
* 获取应用成apk
93+
*
94+
* @param packageName 应用程序包名
95+
* @param pm 包管理器
96+
* @return 返回获取到的应用程序apk
97+
*/
98+
public String getAppApk(String packageName, PackageManager pm) {
99+
String sourceDir = null;
100+
try {
101+
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
102+
sourceDir = applicationInfo.sourceDir;
103+
} catch (PackageManager.NameNotFoundException e) {
104+
e.printStackTrace();
105+
}
106+
return sourceDir;
107+
}
108+
109+
}

library/src/main/java/com/code19/library/SystemUtils.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.io.File;
3636
import java.security.MessageDigest;
3737
import java.util.List;
38+
import java.util.Locale;
3839

3940
/**
4041
* 系统信息工具包<br>
@@ -304,6 +305,11 @@ public static void createDeskShortCut(Context cxt, int icon, String title, Class
304305
// 发送广播。OK
305306
cxt.sendBroadcast(shortcutIntent);
306307
}
307-
308+
/**
309+
* @return 返回当前语言
310+
*/
311+
public static String getCurrentLauguage() {
312+
return Locale.getDefault().getLanguage();
313+
}
308314

309315
}

0 commit comments

Comments
 (0)