package com.example.baselayerlibrary.Utils;
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import java.util.List;
/**
* Created by lvlufei on 2017/12/18.
* <p>
* APP辅助工具
*/
public class AppUtils {
private AppUtils() {
}
public static AppUtils getInstance() {
return AppUtilsHelper.mAppUtils;
}
/**
* 静态内部类实现单例
*/
private static class AppUtilsHelper {
private static AppUtils mAppUtils;
static {
mAppUtils = new AppUtils();
}
}
/**
* 获取当前应用程序的包名
*
* @param context
* @return
*/
public String getAppProcessName(Context context) {
//当前应用pid
int pid = android.os.Process.myPid();
//任务管理类
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
//遍历所有应用
List<ActivityManager.RunningAppProcessInfo> infos = manager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo info : infos) {
//得到当前应用
if (info.pid == pid)
//返回包名
return info.processName;
}
return "";
}
/**
* 获取用程序名称
*
* @param context
* @return
*/
public String getAppName(Context context) {
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
int labelRes = packageInfo.applicationInfo.labelRes;
return context.getResources().getString(labelRes);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 获取应用版本名称
*
* @param context
* @return
*/
public String getVersionName(Context context) {
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
return packageInfo.versionName;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 获取应用版本号
*
* @param context
* @return
*/
public int getVersionCode(Context context) {
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
return packageInfo.versionCode;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
/**
* 获取application中指定的meta-data
*
* @param ctx
* @param key
* @return 如果没有获取成功(没有对应值,或者异常),则返回值为空
*/
public int getAppMetaDataInt(Context ctx, String key) {
if (ctx == null || TextUtils.isEmpty(key)) {
return 0;
}
int resultData = 0;
try {
PackageManager packageManager = ctx.getPackageManager();
if (packageManager != null) {
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo != null) {
if (applicationInfo.metaData != null) {
resultData = applicationInfo.metaData.getInt(key);
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return resultData;
}
/**
* 获取application中指定的meta-data
*
* @param ctx
* @param key
* @return 如果没有获取成功(没有对应值,或者异常),则返回值为空
*/
public String getAppMetaDataStr(Context ctx, String key) {
if (ctx == null || TextUtils.isEmpty(key)) {
return null;
}
String resultData = null;
try {
PackageManager packageManager = ctx.getPackageManager();
if (packageManager != null) {
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo != null) {
if (applicationInfo.metaData != null) {
resultData = applicationInfo.metaData.getString(key);
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return resultData;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MyLibrary.rar (30个子文件)
MyLibrary
settings.gradle 37B
baselayerlibrary
src
androidTest
java
com
example
baselayerlibrary
ExampleInstrumentedTest.java 791B
test
java
com
example
baselayerlibrary
ExampleUnitTest.java 422B
main
AndroidManifest.xml 251B
res
drawable
values
strings.xml 133B
java
com
example
baselayerlibrary
Utils
DoubleClickExitUtils.java 2KB
AppUtils.java 5KB
build.gradle 851B
proguard-rules.pro 969B
app
src
androidTest
java
com
example
lvlufei
mylibrary
ExampleInstrumentedTest.java 788B
test
java
com
example
lvlufei
mylibrary
ExampleUnitTest.java 423B
main
AndroidManifest.xml 747B
res
mipmap-hdpi
ic_launcher.png 3KB
ic_launcher_round.png 4KB
mipmap-xxxhdpi
ic_launcher.png 10KB
ic_launcher_round.png 14KB
mipmap-xhdpi
ic_launcher.png 5KB
ic_launcher_round.png 6KB
mipmap-mdpi
ic_launcher.png 2KB
ic_launcher_round.png 2KB
drawable
layout
activity_main.xml 820B
values
colors.xml 214B
strings.xml 75B
styles.xml 394B
mipmap-xxhdpi
ic_launcher.png 8KB
ic_launcher_round.png 10KB
java
com
example
lvlufei
mylibrary
MainActivity.java 714B
build.gradle 1016B
proguard-rules.pro 969B
build.gradle 521B
共 30 条
- 1
资源评论
LvLuffy
- 粉丝: 10
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功