来吧来吧,今天闲着有空。暂时没想到要写什么好。等之后把所做的项目都整理一下看看。

那今天就把我用过整理过的Android项目上的工具类收集整理一下。

/*** 判断本机是否安装了某个应用程序* * @param context*            Context对象* @param packagename*            目标应用程序的包名* @return true表示已安装,false表示未安装*/public static boolean isAppInstalled(Context context, String packagename) {PackageInfo packageInfo;try {packageInfo = context.getPackageManager().getPackageInfo(packagename, 0);} catch (NameNotFoundException e) {packageInfo = null;e.printStackTrace();}if (packageInfo == null) {return false;} else {return true;}}

/*** 获取版本号* * @param context*            Context对象* @return 版本号*/public static int getVersionCode(Context context) {PackageManager packageManager = context.getPackageManager();PackageInfo packageInfo;int versionCode = 0;try {packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);versionCode = packageInfo.versionCode;} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return versionCode;}

/*** 获取版本名* * @param context*            Context对象* @return 版本名*/public static String getVersionName(Context context) {PackageManager packageManager = context.getPackageManager();PackageInfo packageInfo;String versionName = "";try {packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);versionName = packageInfo.versionName;} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return versionName;}

/*** 安装apk* * @param context*            Context对象* @param apkFile*            apk文件*/public static void installApp(Context context, File apkFile) {Intent intent = new Intent(Intent.ACTION_VIEW);Uri uri = Uri.fromFile(apkFile);intent.setDataAndType(uri, "application/vnd.android.package-archive");context.startActivity(intent);}

/*** 返回所有应用的名称* * @param context*            Context对象* @return 应用程序集合*/public static List<String> getInstalledInfo(Context context) {List<String> list = new ArrayList<String>();List<PackageInfo> ps = context.getPackageManager().getInstalledPackages(0);for (PackageInfo packageInfo : ps) {list.add(packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString());}return list;}

/*** 获取设备名称 <br>* 比如:SAMSUNG9300、LEX720* * @return 设备名称*/public static String getPhoneType() {return android.os.Build.MODEL;}

/*** 获取Android sdk版本 <br>* 比如:android4.3、android6.0* * @return android sdk版本*/public static String getAndroidSdkVersionName() {return "android" + android.os.Build.VERSION.RELEASE;}

/*** 获取手机厂商* * @return 手机厂商*/public static String getPhoneManufacture() {return android.os.Build.MANUFACTURER;}

/*** 获取设备的IMEI* * @param context*            Context对象* @return 设备IMEI*/public static String getImei(Context context) {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return tm.getDeviceId();}

/*** 获取设备唯一id* * @param context*            Context对象* @return 设备唯一id*/public static String getUniqueId(Context context) {String imei = getImei(context);if (!TextUtils.isEmpty(imei))return imei;else {String phoneId = getPhoneId(context);if (!TextUtils.isEmpty(phoneId))return phoneId;}return "unknow";}

/*** 获取cpu信息* * @return cpu信息*/public static String[] getCpuInfo() {String str1 = "/proc/cpuinfo";String str2 = "";String[] cpuInfo = { "", "" };String[] arrayOfString;try {FileReader fr = new FileReader(str1);BufferedReader localBufferedReader = new BufferedReader(fr, 8192);str2 = localBufferedReader.readLine();arrayOfString = str2.split("\\s+");for (int i = 2; i < arrayOfString.length; i++) {cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";}str2 = localBufferedReader.readLine();arrayOfString = str2.split("\\s+");cpuInfo[1] += arrayOfString[2];localBufferedReader.close();fr.close();} catch (IOException e) {}return cpuInfo;}

/*** 获取SDCard大小* * @param context*            Context对象* @return SDCard大小*/public static String getSDTotalSize(Context context) {String state = Environment.getExternalStorageState();if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {File path = Environment.getExternalStorageDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long totalBlocks = stat.getBlockCount();return Formatter.formatFileSize(context, blockSize * totalBlocks);}return "unknow";}

public class NetworkUtil {/*** 判断是否有网络连接* * @param context*            Context对象* @return true表示有网络,false表示没有网络*/public static boolean isNetworkConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null) {return mNetworkInfo.isAvailable();}}return false;}/*** 判断WIFI网络是否可用* * @param context*            Context对象* @return true表示wifi可用,false表示WiFi不可用*/@SuppressWarnings("deprecation")public static boolean isWifiConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (mWiFiNetworkInfo != null) {return mWiFiNetworkInfo.isAvailable();}}return false;}/*** 判断MOBILE网络是否可用* * @param context*            Context对象* @return true表示可用,false表示不可用*/@SuppressWarnings("deprecation")public static boolean isMobileConnected(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (mMobileNetworkInfo != null) {return mMobileNetworkInfo.isAvailable();}}return false;}/*** 获取当前网络连接的类型信息*/public static int getConnectedType(Context context) {if (context != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {return mNetworkInfo.getType();}}return -1;}/*** 获取当前网络类型* * @param context*            Context对象* @return 2G/3G/4G/WIFI/NULL/unknown*/public static String getNetType(Context context) {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);final NetworkInfo info = cm.getActiveNetworkInfo();if (info == null || !info.isAvailable()) {return "no";}if (info.getType() == ConnectivityManager.TYPE_WIFI) {return "WIFI";}if (info.getType() == ConnectivityManager.TYPE_MOBILE) {int sub = info.getSubtype();switch (sub) {case TelephonyManager.NETWORK_TYPE_GPRS:case TelephonyManager.NETWORK_TYPE_EDGE:case TelephonyManager.NETWORK_TYPE_CDMA:// 电信的2Gcase TelephonyManager.NETWORK_TYPE_1xRTT:case TelephonyManager.NETWORK_TYPE_IDEN:// 以上的都是2G网络return "2G";case TelephonyManager.NETWORK_TYPE_UMTS:case TelephonyManager.NETWORK_TYPE_EVDO_A:case TelephonyManager.NETWORK_TYPE_HSDPA:case TelephonyManager.NETWORK_TYPE_HSUPA:case TelephonyManager.NETWORK_TYPE_HSPA:case TelephonyManager.NETWORK_TYPE_EVDO_B:case TelephonyManager.NETWORK_TYPE_EHRPD:case TelephonyManager.NETWORK_TYPE_HSPAP:// 以上的都是3G网络return "3G";case TelephonyManager.NETWORK_TYPE_LTE:return "4G";case TelephonyManager.NETWORK_TYPE_UNKNOWN:return "unknown";default:return "unknown";}}return "unknown";}/*** 获取MAC地址* * @param context*            Context对象* @return 设备的Mac地址*/public static String getMacAddress(Context context) {String macAddress = "";try {WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifiMgr.getConnectionInfo();macAddress = info.getMacAddress();} catch (Exception e) {e.printStackTrace();}return macAddress;}
}

public class ScreenUtil {/*** 获取屏幕密度* * @param context*            Context对象* @return 密度值*/public static float getDensity(Context context) {try {DisplayMetrics dm = new DisplayMetrics();dm = context.getResources().getDisplayMetrics();float density = dm.density;return density;} catch (Throwable e) {e.printStackTrace();return 1.0f;}}/*** 获取屏幕的宽度(单位:像素)* * @param context*            Context对象* @return 宽度值*/public static int getScreenWidth(Context context) {try {DisplayMetrics dm = new DisplayMetrics();dm = context.getResources().getDisplayMetrics();int screenWidth = dm.widthPixels;return screenWidth;} catch (Throwable e) {e.printStackTrace();return 0;}}/*** 获取屏幕的高度(单位:像素)* * @param context*            Context对象* @return 高度值*/public static int getScreenHeight(Context context) {try {DisplayMetrics dm = new DisplayMetrics();dm = context.getResources().getDisplayMetrics();int screenHeight = dm.heightPixels;return screenHeight;} catch (Throwable e) {e.printStackTrace();return 0;}}/*** 获取屏幕分辨率* * @param context*            Context对象* @return 分辨率*/public static String getScreenSize(Context context) {return getScreenHeight(context) + "*" + getScreenWidth(context);}/*** dp转像素(px)* * @param context*            Context对象* @param dp*            dp值* @return px值*/public static float dpToPx(Context context, float dp) {if (context == null) {return -1;}return dp * context.getResources().getDisplayMetrics().density;}/*** 像素(px)转dp* * @param context*            Context对象* @param px*            px值* @return dp值*/public static float pxToDp(Context context, float px) {if (context == null) {return -1;}return px / context.getResources().getDisplayMetrics().density;}public static int dpToPxInt(Context context, float dp) {return (int) (dpToPx(context, dp) + 0.5f);}public static int pxToDpCeilInt(Context context, float px) {return (int) (pxToDp(context, px) + 0.5f);}
}

/*** 获取运营商* * @param context*            Context对象* @return 运营商编识别码*/public static String getProvidersName(Context context) {String providerName = "";try {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);String IMSI = telephonyManager.getSubscriberId();// IMSI号前面3位460是国家,紧接着后面2位 00 02是中国移动,01是中国联通,03是中国电信。if (TextUtils.isEmpty(IMSI))return providerName;if (IMSI.startsWith("46000"))// 中国移动providerName = "46000";else if (IMSI.startsWith("46002")) {// 中国移动providerName = "46002";} else if (IMSI.startsWith("46001"))// 中国联通providerName = "46001";else if (IMSI.startsWith("46003"))// 中国电信providerName = "46003";} catch (Exception e) {e.printStackTrace();}return providerName;}/*** 获取手机号* * @param context*            Context对象* @return 手机号*/public static String getPhoneNumber(Context context) {String number = "";TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);number = tm.getLine1Number();return number == null ? "" : number.replace("+86", "");}/*** 获取SIM卡的ISO国家码* * @param context*            Context对象* @return ISO国家码*/public static String getCountry(Context context) {String number = "";TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);number = tm.getSimCountryIso();return number;}

转载于:https://www.cnblogs.com/Jhon-Mr/p/9642250.html

Android工具大杂烩相关推荐

  1. Android-Resources-Hodgepodge(Android资源大杂烩)

    本文声明: 本文的内容整理自网络,本着知识交流分享的原则,请勿用于商业用途,  对于引用的部分,都已在文中指出,如果有遗漏的,可以联系本人加上,若有  侵权,也请指出,本人将及时删掉侵权内容,万分感谢 ...

  2. 【Android工具】更新手机视频流媒体客户端播放器OPlayer

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 之前分享的"安卓魔力播放器moliplayer绿色无广告(2.8.10.83 ...

  3. 【Android工具】安卓应用市场哪家强?chrome浏览器apk下载插件,play安装包下载,妈妈再也不用担心我找不到安装包了...

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 确切的说应该是PC工具,但是下载的是安卓应用安装包,还是放[Android工具]里感觉 ...

  4. 【Android工具】高端DLNA音乐播放器Hi-Fi Cast 来自play

    好久没分享安卓手机上好用的应用了,今天分享一个DLNA音乐播放器,这款软件不仅界面高大上,重点是他支持DLNA功能,可以实现随时播放音乐,而不占用设备的存储空间(只占用一个设备的存储空间) 说到DLN ...

  5. android 音频合成_【Android工具】用手机测量噪声的工具软件,噪声仪分贝计,量化噪声声音工具...

    今天分享一个通过手机麦克风测量环境噪声的工具--声级计(噪声仪). 本来是要分享另一款的,但下载下来的是xapk的安装包,太麻烦了,功能差不多,大家就先用这款吧,有条件的朋友可以去play自己下载. ...

  6. Android工具HierarchyViewer 代码导读(3) -- 后台代码

    在上文中,我们讲解了如何把HierarchyViewer的项目导入到Eclipse中,以便更高效阅读代码.本文将讲解HierarchyViewer的后台代码,建议大家可以先阅读<Android工 ...

  7. 【转载】Android 工具-adb原理

    2019独角兽企业重金招聘Python工程师标准>>> Android 开发中, adb 是开发者经常使用的工具,是 Android 开发者必须掌握的. Android Debug ...

  8. Android 工具类

    前言 相信用过工具类的各位仁兄都觉得工具类好用,小弟不才,今天斗胆拿出自己感觉比较顺手的工具类. 1.Activity控制类 public class ActivityCollector{//acti ...

  9. 【安卓开发系列 -- 开发环境】Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具)

    [安卓开发系列 -- 开发环境]Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具) [1]Unbuntu ...

最新文章

  1. 关掉可穿戴部门后,英特尔还将调整自动驾驶业务
  2. JavaScript基础学习--事件代理
  3. 甲骨文全球大会•2010•北京议程
  4. CountDownLatch简介
  5. 深入理解CSS3 Animation 帧动画
  6. 2016.2.29(异常)
  7. /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误的解决
  8. 数据库:学好SQL必须知道的10个高级概念
  9. FreeSql (三十一)分区分表
  10. 重磅官宣:Nacos2.0发布,性能提升10倍
  11. Spring DI(依赖注入)
  12. 阿里程序员受邀去华为面试,却因这点没被录取。
  13. ahp层次分析法软件_层次分析法在历史街区研究中的应用简析
  14. sqlserver 数据库角色成员身份
  15. 从 SAS 到 NVMe,换个底盘就完儿事了?
  16. Android开发学习之以CameraAPI方式实现相机功能(二)——相机功能配置
  17. 怎样用git获取指定的android linux kernel
  18. tcl 查询与设置编码格式
  19. java资费管理模块_JAVA小区物业收费管理系统设计与实现.doc
  20. matlab 矩阵白化,白化(预处理步骤)【转】

热门文章

  1. 一个nodejs里日志文件的实现
  2. SAP UI5里关于时区问题转换的JavaScript代码
  3. 如何使用Kubernetes里的NetworkPolicy
  4. java xml 反射_Java 读取XML文件以及Java 的反射机制实现
  5. 计算机网络wfq,计算机网络基础试题-a卷-信科09.doc
  6. unity3d 700种 材质球_温度与耐磨钢球的关系
  7. 怎么通过media foundation将图像数据写入虚拟摄像头_[Camera]摄像头镜像
  8. iphone开蓝牙wifi上网慢_为啥我开锁总是比别人慢?
  9. 罗马数字转整数Python解法
  10. 星空主题设计理念_敏捷协调,智慧运营:金蝶云·星空的产品设计理念与应用实践...