多个工具类,包含IP地址获取,资源图片获取,元分的转换,银行图片的获取,获取UUID等

import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.text.DecimalFormat;
import java.util.Enumeration;
import java.util.UUID;
import java.util.regex.Pattern;import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;public class YhshUtils {protected static final String PREFS_FILE = "device_id";protected static final String PREFS_DEVICE_ID = "device_id";private static final Pattern IPV4_PATTERN = Pattern.compile("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$");public static String getDeviceUniqueId(Context context) {SharedPreferences prefs = context.getSharedPreferences(PREFS_FILE, 0);String id = prefs.getString(PREFS_DEVICE_ID, null);String deviceUniqueId;//device unique idif (id != null) {deviceUniqueId = id;} else {String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);try {if (androidId != null && !"9774d56d682e549c".equals(androidId)) {deviceUniqueId = UUID.nameUUIDFromBytes(androidId.getBytes("utf8")).toString();} else {String deviceId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();deviceUniqueId = (deviceId != null || "Unknown".equals(deviceId)) ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")).toString() : UUID.randomUUID().toString();}} catch (UnsupportedEncodingException e) {throw new RuntimeException(e);}prefs.edit().putString(PREFS_DEVICE_ID, deviceUniqueId).apply();}return deviceUniqueId;}@SuppressWarnings("MissingPermission")public static String getIMEIandMAC(Context context) {String imei_flag = "yhsh_mobile_android";try {TelephonyManager mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);//获取IMEIString imei = mTm.getDeviceId();//获取SIM卡的IMSIString imsi = mTm.getSubscriberId();//获取MAC地址WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();String result = wifiInfo.getMacAddress();imei_flag = imei + "_" + result + "_" + imsi;} catch (Exception e) {e.printStackTrace();}return imei_flag;}/*** 获得一个UUID** @return String UUID*/public static String getUUID() {String s = UUID.randomUUID().toString();//去掉“-”符号return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);}/*** 获取资源文件--Drawable*/public static Drawable getResDrawable(Context context, String res_name) {InputStream is = null;try {is = context.getAssets().open(res_name);} catch (IOException e) {e.printStackTrace();}Bitmap bitmap = BitmapFactory.decodeStream(is);Drawable drawable = new BitmapDrawable(null, bitmap);return drawable;}/*** 分-->元  转换-用于显示*/public static String fen2Yuan(String total_fee) {DecimalFormat df = new DecimalFormat("#,##0.00 ");return df.format(new BigDecimal(Double.parseDouble(total_fee)).movePointLeft(2));}public static String yuan2Fen(String total_fee_Yuan) {return yuan2FenLong(total_fee_Yuan);}public static String yuan2FenLong(String total_fee_Yuan) {String yuan_raw = total_fee_Yuan.replace(",", "").trim();BigDecimal fenBd = new BigDecimal(yuan_raw).multiply(new BigDecimal(100));fenBd = fenBd.setScale(0, BigDecimal.ROUND_HALF_UP);return String.valueOf(fenBd.longValue());}/*** 获取IP地址的方法** @return*/public static String getLocalIpAddress() {try {for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {NetworkInterface intf = en.nextElement();for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress() && isIPv4Address(inetAddress.getHostAddress())) {return inetAddress.getHostAddress();}}}} catch (SocketException ex) {ex.getLocalizedMessage();}return "192.0.0.1";}public static boolean isIPv4Address(String input) {return IPV4_PATTERN.matcher(input).matches();}/*** 获取银行图标*/public static Drawable getResBankDrawable(Context context, String bank_name) {InputStream is = null;String res_name = "unknown.png";try {if (bank_name != null) {switch (bank_name) {case "?":res_name = "unknown.png";break;case "北京银行":res_name = "bank_bj.png";break;case "光大银行":res_name = "bank_gd.png";break;case "广发银行":res_name = "bank_gf.png";break;case "工商银行":res_name = "bank_gs.png";break;case "华夏银行":res_name = "bank_hx.png";break;case "建设银行":res_name = "bank_js.png";break;case "交通银行":res_name = "bank_jt.png";break;case "民生银行":res_name = "bank_ms.png";break;case "农业银行":res_name = "bank_ny.png";break;case "平安银行":res_name = "bank_pa.png";break;case "浦发银行":res_name = "bank_pf.png";break;case "上海银行":res_name = "bank_sh.png";break;case "兴业银行":res_name = "bank_xy.png";break;case "邮政储蓄":res_name = "bank_yz.png";break;case "中国银行":res_name = "bank_zg.png";break;case "招商银行":res_name = "bank_zs.png";break;case "中信银行":res_name = "bank_zx.png";break;}}is = context.getAssets().open(res_name);} catch (IOException e) {e.printStackTrace();}Bitmap bitmap = BitmapFactory.decodeStream(is);Drawable drawable = new BitmapDrawable(bitmap);return drawable;}}

Android中常用的一些方法总结的工具类相关推荐

  1. VB的一些项目中常用的通用方法-一般用于验证类

    1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer '20060728 Dim mycha ...

  2. Android中Log日志的管理之log工具类

    平常开发项目中难免会用到日志的管理,下面的log日志是比较好用完善的,直接调用即可,有日志开关,日志等级等 import android.util.Log; /*** 日志相关类:默认是测试环境< ...

  3. android中常用的快捷键

    2019独角兽企业重金招聘Python工程师标准>>> android中常用的快捷键 Eclipse快捷键-方便查找,呵呵,记性不好 行注释/销注释 Ctrl+/  块注释/销注释/ ...

  4. java中链式调用_Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...

  5. java调用android_Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...

  6. Android中常用的设计模式

    一:参考文档 先介绍参考文档(或许我们更容易明白):另记录本人可参考 QQ15 MobileSafe 两个Demo 有哪些在实际 Android 项目中用到的设计模式? Android开发中常见的设计 ...

  7. Android中常用的设计模式一

    对于开发来说,设计模式是必不可少的,就像是一个项目的架海紫金梁,而且熟悉常用的设计模式可以有助于我们研读源码.好,废话不多说,开始介绍 1> 单例: 不想再说了,如果还有人不会,我叫他大爷. 大 ...

  8. 安卓逆向分析中常用动态调试方法总结

    安卓逆向之----常用动态调试方法 一. 前言 逆向分析中常用的分析方法有:静态分析.动态调试.HOOK等.动态调试的好处是:1)可以在调试的过程中知道参数或者局部变量的值以及变化过程,2)可以快速履 ...

  9. 统计计量 | 统计学中常用的数据分析方法汇总

    来源:数据Seminar本文约10500字,建议阅读15+分钟 统计学中常用的数据分析方法汇总. Part1描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分析,并对数据的分布状态.数字特 ...

最新文章

  1. Fault,Error与Failure的联系与区别
  2. qemu模拟执行固件文件(解决 Invalid ELF image for this architecture 问题)
  3. UA MATH571A 一元线性回归II 统计推断1
  4. 利用WireShark分析由Ping产生的Internet 控制报文协议(ICMP)
  5. C++内联函数(inline function)
  6. linux开机自启服务命令,linux开机自启服务命令
  7. 从源码角度解释 fragment 坑(一)
  8. 如何提升你的CSS技能?掌握这20个css技巧即可[完整版]
  9. 不用POI技术,JAVA给Word文档中的数据区域赋值
  10. 登录瑞友天翼时提示“建立SSl 加密隧道失败,请检查网络连接是否正常或者服务器的协议端口是否正常”,如何处理?...
  11. CAS方式实现单点登录
  12. Android Studio配置ADB环境变量
  13. 知云文献翻译_研究生必备的文献翻译软件——知云文献翻译
  14. 关于IDEA调试@RunWith(SpringRunner.class)报错问题
  15. oracle调用web severs,Oracle调用C#开发web services
  16. 美国约翰斯·霍普金斯大学全球新冠疫情统计数据网址
  17. Glide的使用回收内存问题
  18. python rpa机器人_6个开源工具机器人过程自动化RPA工具
  19. 计算机研究生英语ppt,计算机硕士论文答辩ppt
  20. uniapp map地图

热门文章

  1. asp.net 报表页面模板_20套大屏模板,教你3分钟制作出酷炫的可视化大屏
  2. python yield from yield_python yield和yield from用法总结详解 python yield和yield from用法总结...
  3. 单片微型计算机 第九章自测题,单片微型计算机网上练习题答案..doc
  4. 印度孟买机器人餐厅_印度孟买自动化展:该国最重要、规模最大的国际自动化展...
  5. 面试基础-- JDK、JRE、JVM
  6. ssd网络结构_封藏的SSD(Single Shot MultiBox Detector)笔记
  7. Docker部署OpenProject
  8. 静态分析:IDA逆向代码段说明 text、idata、rdata、data
  9. configparser操作配置文件
  10. NOIP2018提高组模拟题(六)