Android中常用的一些方法总结的工具类

多个工具类,包含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 id
        if (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);
            //获取IMEI
            String imei = mTm.getDeviceId();
            //获取SIM卡的IMSI
            String 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;
    }


}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值