文章目录
AppUtils.java
- AppUtils.java
- DeviceUtils.java
- NetUtils.java
- DateUtil.java
- DensityUtil.java
- FileUtils.java
- StringUtils.java
- SystemUtils.java
- SPUtils.java
- VerificationUtils.java
- L.java
- 应用工具类
getAppName : 获取应用名称
getAppIcon : 获取应用图标
getAppFirstInstallTime : 获取应用第一次安装日期
getAppLastUpdateTime : 获取应用更新日期
getAppSize : 获取应用大小
getAppApk : 获取应用 apk 文件
getAppVersionName : 获取应用版本名称
getAppInstaller : 获取应用的安装市场
getAppSign : 获取应用签名
getAppTargetSdkVersion : 获取应用兼容sdk
getAppUid : 获取应用uid
getNumCores : 获取Cpu内核数
getRootPermission : 获得root权限
getAppPermissions : 获取应用的所有权限
hasPermission : 是否有权限
isInstalled : 应用是否安装
isSystemApp : 是否是系统应用
isServiceRunning : 服务是否在运行
stopRunningService : 停止服务
killProcesses : 结束进程
runScript : 运行脚本
runApp : 启动应用
cleanCache : 清除应用内部缓存
cleanDatabases : 清除应用内部数据库
cleanSharedPreference : 清除应用内部SP
public class AppUtils {
public static String getAppName(Context context, String packageName) {
PackageManager pm = context.getPackageManager();
String appName = null;
try {
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
appName = String.valueOf(pm.getApplicationLabel(applicationInfo));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return appName;
}
public static Drawable getAppIcon(Context context, String packageName) {
PackageManager pm = context.getPackageManager();
Drawable appIcon = null;
try {
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
appIcon = applicationInfo.loadIcon(pm);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return appIcon;
}
public static long getAppFirstInstallTime(Context context, String packageName) {
long lastUpdateTime = 0;
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
lastUpdateTime = packageInfo.firstInstallTime;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return lastUpdateTime;
}
public static long getAppLastUpdateTime(Context context, String packageName) {
long lastUpdateTime = 0;
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
lastUpdateTime = packageInfo.lastUpdateTime;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return lastUpdateTime;
}
public static long getAppSize(Context context, String packageName) {
long appSize = 0;
try {
ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo(packageName, 0);
appSize = new File(applicationInfo.sourceDir).length();
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return appSize;
}
public static String getAppApk(Context context, String packageName) {
String sourceDir = null;
try {
ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo(packageName, 0);
sourceDir = applicationInfo.sourceDir;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return sourceDir;
}
public static String getAppVersionName(Context context, String packageName) {
String appVersion = null;
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
appVersion = packageInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return appVersion;
}
public static int getAppVersionCode(Context context, String packageName) {
int appVersionCode = 0;
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
appVersionCode = packageInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return appVersionCode;
}
public static String getAppInstaller(Context context, String packageName) {
return context.getPackageManager().getInstallerPackageName(packageName);
}
public static String getAppSign(Context context, String packageName) {
try {
PackageInfo pis = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
return hexdigest(pis.signatures[0].toByteArray());
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(AppUtils.class.getName() + "the " + packageName + "'s application not found");
}
}
public static int getAppTargetSdkVersion(Context context, String packageName) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
return applicationInfo.targetSdkVersion;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return 0;
}
}
public static int getAppUid(Context context, String packageName) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
return applicationInfo.uid;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return 0;
}
}
public static int getNumCores() {
try {
File dir = new File("/sys/devices/system/cpu/");
File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return Pattern.matches("cpu[0-9]", pathname.getName());
}
});
return files.length;
} catch (Exception e) {
e.printStackTrace();
return 1;
}
}
public static boolean getRootPermission(Context context) {
String packageCodePath = context.getPackageCodePath();
Process process = null;
DataOutputStream os = null;
try {
String cmd = "chmod 777 " + packageCodePath;
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
e.printStackTrace();
}
}
return true;
}
public static String[] getAppPermissions(Context context, String packname) {
String[] requestedPermissions = null;
try {
PackageInfo info = context.getPackageManager().getPackageInfo(packname, PackageManager.GET_PERMISSIONS);
requestedPermissions = info.requestedPermissions;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return requestedPermissions;
}
public static boolean hasPermission(Context context, String permission) {
if (context != null && !TextUtils.isEmpty(permission)) {
try {
PackageManager packageManager = context.getPackageManager();
if (packageManager != null) {
if (PackageManager.PERMISSION_GRANTED == packageManager.checkPermission(permission, context
.getPackageName())) {
return true;
}
Log.d("AppUtils", "Have you declared permission " + permission + " in AndroidManifest.xml ?");
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
return false;
}
public static boolean isInstalled(Context context, String packageName) {
boolean installed = false;
if (TextUtils.isEmpty(packageName)) {
return false;
}
List installedApplications = context.getPackageManager().getInstalledApplications(0);
for (ApplicationInfo in : installedApplications) {
if (packageName.equals(in.packageName)) {
installed = true;
break;
} else {
installed = false;
}
}
return installed;
}
@Deprecated
public static boolean installApk(Context context, String filePath) {
File file = new File(filePath);
if (!file.exists() || !file.isFile() || file.length() 0) {
isSys = true;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
isSys = false;
}
return isSys;
}
public static boolean isServiceRunning(Context context, String className) {
boolean isRunning = false;
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List servicesList = activityManager.getRunningServices(Integer.MAX_VALUE);
for (RunningServiceInfo si : servicesList) {
if (className.equals(si.service.getClassName())) {
isRunning = true;
}
}
return isRunning;
}
public static boolean stopRunningService(Context context, String className) {
Intent intent_service = null;
boolean ret = false;
try {
intent_service = new Intent(context, Class.forName(className));
} catch (Exception e) {
e.printStackTrace();
}
if (intent_service != null) {
ret = context.stopService(intent_service);
}
return ret;
}
public static void killProcesses(Context context, int pid, String processName) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
String packageName;
try {
if (!processName.contains(":")) {
packageName = processName;
} else {
packageName = processName.split(":")[0];
}
activityManager.killBackgroundProcesses(packageName);
Method forceStopPackage = activityManager.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(activityManager, packageName);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String runScript(String script) {
String sRet;
try {
final Process m_process = Runtime.getRuntime().exec(script);
final StringBuilder sbread = new StringBuilder();
Thread tout = new Thread(new Runnable() {
public void run() {
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(m_process.getInputStream()),
8192);
String ls_1;
try {
while ((ls_1 = bufferedReader.readLine()) != null) {
sbread.append(ls_1).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
tout.start();
final StringBuilder sberr = new StringBuilder();
Thread terr = new Thread(new Runnable() {
public void run() {
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(m_process.getErrorStream()),
8192);
String ls_1;
try {
while ((ls_1 = bufferedReader.readLine()) != null) {
sberr.append(ls_1).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
terr.start();
m_process.waitFor();
while (tout.isAlive()) {
Thread.sleep(50);
}
if (terr.isAlive())
terr.interrupt();
String stdout = sbread.toString();
String stderr = sberr.toString();
sRet = stdout + stderr;
} catch (Exception e) {
e.printStackTrace();
return null;
}
return sRet;
}
public static void runApp(Context context, String packagename) {
context.startActivity(new Intent(context.getPackageManager().getLaunchIntentForPackage(packagename)));
}
@Deprecated
public static void cleanCache(Context context) {
FileUtils.deleteFileByDirectory(context.getCacheDir());
}
@Deprecated
public static void cleanDatabases(Context context) {
String filepath = String.format(String.format(context.getFilesDir().getParent() + File.separator + "%s", "databases"));
FileUtils.deleteFileByDirectory(new File(filepath));
}
@Deprecated
public static void cleanSharedPreference(Context context) {
String filepath = String.format(String.format(context.getFilesDir().getParent() + File.separator + "%s", "shared_prefs"));
FileUtils.deleteFileByDirectory(new File(filepath));
}
}
DeviceUtils.java
- 设备信息工具
getAndroidID : 获取AndroidID
getIMEI : 获取设备IMEI码
getIMSI : 获取设备IMSI码
getWifiMacAddr : 获取MAC地址
getIP : 获取网络IP地址(优先获取wifi地址)
getWifiIP : 获取WIFI连接下的ip地址
getGPRSIP : 获取GPRS连接下的ip地址
getSerial : 获取设备序列号
getSIMSerial : 获取SIM序列号
getMNC : 获取网络运营商 46000,46002,46007 中国移动,46001 中国联通,46003 中国电信
getCarrier : 获取网络运营商:中国电信,中国移动,中国联通
getModel : 获取硬件型号
getBuildBrand : 获取编译厂商
getBuildHost : 获取编译服务器主机
getBuildTags : 获取描述Build的标签
getBuildTime : 获取系统编译时间
getBuildUser : 获取系统编译作者
getBuildVersionRelease : 获取编译系统版本(5.1)
getBuildVersionCodename : 获取开发代号
getBuildVersionIncremental : 获取源码控制版本号
getBuildVersionSDK : 获取编译的SDK
getBuildID : 获取修订版本列表(LMY47D)
getSupportedABIS : CPU指令集
getManufacturer : 获取硬件制造厂商
getBootloader : 获取系统启动程序版本号
getScreenDisplayID
getDisplayVersion : 获取系统版本号
getLanguage : 获取语言
getCountry : 获取国家
getOSVersion : 获取系统版本:5.1.1
getGSFID : 获取GSF序列号
getBluetoothMAC : 获取蓝牙地址
getPsuedoUniqueID : Android设备物理唯一标识符
getFingerprint : 构建标识,包括brand,name,device,version.release,id,version.incremental,type,tags这些信息
getHardware : 获取硬件信息
getProduct : 获取产品信息
getDevice : 获取设备信息
getBoard : 获取主板信息
getRadioVersion : 获取基带版本(无线电固件版本 Api14以上)
getUA : 获取的浏览器指纹(User-Agent)
getDensity : 获取得屏幕密度
getGoogleAccounts : 获取google账号
public class DeviceUtils {
public static String getAndroidID(Context ctx) {
return Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.ANDROID_ID);
}
public static String getIMEI(Context ctx) {
return ((TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
}
public static String getIMSI(Context ctx) {
TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getSubscriberId() != null ? tm.getSubscriberId() : null;
}
@SuppressWarnings("MissingPermission")
public static String getWifiMacAddr(Context ctx) {
String macAddr = "";
try {
WifiManager wifi = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
macAddr = wifi.getConnectionInfo().getMacAddress();
if (macAddr == null) {
macAddr = "";
}
} catch (Exception e) {
e.printStackTrace();
}
return macAddr;
}
public static String getIP(Context ctx) {
WifiManager wifiManager = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
return wifiManager.isWifiEnabled() ? getWifiIP(wifiManager) : getGPRSIP();
}
public static String getWifiIP(WifiManager wifiManager) {
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ip = intToIp(wifiInfo.getIpAddress());
return ip != null ? ip : "";
}
public static String getGPRSIP() {
String ip = null;
try {
for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
for (Enumeration enumIpAddr = en.nextElement().getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
ip = inetAddress.getHostAddress();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
ip = null;
}
return ip;
}
private static String intToIp(int i) {
return (i & 0xFF) + "." + ((i >> 8) & 0xFF) + "." + ((i >> 16) & 0xFF) + "." + (i >> 24 & 0xFF);
}
public static String getSerial() {
return Build.SERIAL;
}
public static String getSIMSerial(Context ctx) {
TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getSimSerialNumber();
}
public static String getMNC(Context ctx) {
String providersName = "";
TelephonyManager telephonyManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
if (telephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY) {
providersName = telephonyManager.getSimOperator();
providersName = providersName == null ? "" : providersName;
}
return providersName;
}
public static String getCarrier(Context ctx) {
TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getNetworkOperatorName().toLowerCase(Locale.getDefault());
}
public static String getModel() {
return Build.MODEL;
}
public static String getBuildBrand() {
return Build.BRAND;
}
public static String getBuildHost() {
return Build.HOST;
}
public static String getBuildTags() {
return Build.TAGS;
}
public static long getBuildTime() {
return Build.TIME;
}
public static String getBuildUser() {
return Build.USER;
}
public static String getBuildVersionRelease() {
return Build.VERSION.RELEASE;
}
public static String getBuildVersionCodename() {
return Build.VERSION.CODENAME;
}
public static String getBuildVersionIncremental() {
return Build.VERSION.INCREMENTAL;
}
public static int getBuildVersionSDK() {
return Build.VERSION.SDK_INT;
}
public static String getBuildID() {
return Build.ID;
}
public static String[] getSupportedABIS() {
String[] result = new String[]{"-"};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
result = Build.SUPPORTED_ABIS;
}
if (result == null || result.length == 0) {
result = new String[]{"-"};
}
return result;
}
public static String getManufacturer() {
return Build.MANUFACTURER;
}
public static String getBootloader() {
return Build.BOOTLOADER;
}
public static String getScreenDisplayID(Context ctx) {
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
return String.valueOf(wm.getDefaultDisplay().getDisplayId());
}
public static String getDisplayVersion() {
return Build.DISPLAY;
}
public static String getLanguage() {
return Locale.getDefault().getLanguage();
}
public static String getCountry(Context ctx) {
TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
Locale locale = Locale.getDefault();
return tm.getSimState() == TelephonyManager.SIM_STATE_READY ? tm.getSimCountryIso().toLowerCase(Locale.getDefault()) : locale.getCountry().toLowerCase(locale);
}
public static String getOSVersion() {
return Build.VERSION.RELEASE;
}
//
public static String getGSFID(Context context) {
String result;
final Uri URI = Uri.parse("content://com.google.android.gsf.gservices");
final String ID_KEY = "android_id";
String[] params = {ID_KEY};
Cursor c = context.getContentResolver().query(URI, null, null, params, null);
if (c == null || !c.moveToFirst() || c.getColumnCount() = Build.VERSION_CODES.LOLLIPOP) {
devIDShort += (Build.SUPPORTED_ABIS[0].length() % 10);
} else {
devIDShort += (Build.CPU_ABI.length() % 10);
}
devIDShort += (Build.DEVICE.length() % 10) + (Build.MANUFACTURER.length() % 10) + (Build.MODEL.length() % 10) + (Build.PRODUCT.length() % 10);
String serial;
try {
serial = Build.class.getField("SERIAL").get(null).toString();
return new UUID(devIDShort.hashCode(), serial.hashCode()).toString();
} catch (Exception e) {
serial = "ESYDV000";
}
return new UUID(devIDShort.hashCode(), serial.hashCode()).toString();
}
public static String getFingerprint() {
return Build.FINGERPRINT;
}
public static String getHardware() {
return Build.HARDWARE;
}
public static String getProduct() {
return Build.PRODUCT;
}
public static String getDevice() {
return Build.DEVICE;
}
public static String getBoard() {
return Build.BOARD;
}
public static String getRadioVersion() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH ? Build.getRadioVersion() : "";
}
public static String getUA(Context ctx) {
final String system_ua = System.getProperty("http.agent");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
return new WebView(ctx).getSettings().getDefaultUserAgent(ctx) + "__" + system_ua;
} else {
return new WebView(ctx).getSettings().getUserAgentString() + "__" + system_ua;
}
}
public static String getDensity(Context ctx) {
String densityStr = null;
final int density = ctx.getResources().getDisplayMetrics().densityDpi;
switch (density) {
case DisplayMetrics.DENSITY_LOW:
densityStr = "LDPI";
break;
case DisplayMetrics.DENSITY_MEDIUM:
densityStr = "MDPI";
break;
case DisplayMetrics.DENSITY_TV:
densityStr = "TVDPI";
break;
case DisplayMetrics.DENSITY_HIGH:
densityStr = "HDPI";
break;
case DisplayMetrics.DENSITY_XHIGH:
densityStr = "XHDPI";
break;
case DisplayMetrics.DENSITY_400:
densityStr = "XMHDPI";
break;
case DisplayMetrics.DENSITY_XXHIGH:
densityStr = "XXHDPI";
break;
case DisplayMetrics.DENSITY_XXXHIGH:
densityStr = "XXXHDPI";
break;
}
return densityStr;
}
//
@SuppressWarnings("MissingPermission")
public static String[] getGoogleAccounts(Context ctx) {
if (ctx.checkCallingOrSelfPermission(Manifest.permission.GET_ACCOUNTS) == PackageManager.PERMISSION_GRANTED) {
Account[] accounts = AccountManager.get(ctx).getAccountsByType("com.google");
String[] result = new String[accounts.length];
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?