加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android 工具类

发布时间:2020-12-15 00:22:33 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 目前工具类中的方法有: 获取屏幕宽度高度密度 获取MAC地址 获取当前时间 日期格式转换 获取当前版本名,版本号 网络检测. import java.text.SimpleDate

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

目前工具类中的方法有: 获取屏幕宽度高度密度 获取MAC地址 获取当前时间 日期格式转换 获取当前版本名,版本号 网络检测.
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.text.TextUtils;
import android.util.DisplayMetrics;
 
 
public class MyUtils {
     
    /**
     * 获取屏幕宽度高度密度
     * 
     *  如果屏幕密度低,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点 
     * <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:resizeable="true"
        android:anyDensity="true"/>
     * @param activity 屏幕界面
     * @param type     类型1:宽度,2:高度,3:密度,4dpi密度
     * @return 屏幕宽度或高度或密度
     */
    public Object getWindowSize(Activity activity,int type){
        DisplayMetrics metric = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(metric);
        if (type == 1) {
            int width = metric.widthPixels;  // 屏幕宽度(像素)
            return width;
        }else if (type == 2) {
            int height = metric.heightPixels;  // 屏幕高度(像素)
            return height;
        }else if (type == 3) {
            float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
            return density;
        }else if (type == 4) {
            int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)
            return densityDpi;
        }
        return 0;
    }
     
    /**
     * 获取MAC地址    
     * @param context 上下文
     * @param replaceSymbol 替换字符,默认替换字符为""
     * @return 返回MAC地址     错误返回12个0
     */
    public String getMacAddress(Context context,String replaceSymbol) {
        String macAddress = "000000000000";
        if (replaceSymbol == null) {
            replaceSymbol = "";
        }
        try {
            WifiManager wifiMgr = (WifiManager) context
                    .getSystemService(Context.WIFI_SERVICE);
            WifiInfo info = (null == wifiMgr ? null : wifiMgr
                    .getConnectionInfo());
            if (null != info) {
                if (!TextUtils.isEmpty(info.getMacAddress()))
                    macAddress = info.getMacAddress().replace(":",replaceSymbol);
                else
                    return macAddress;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return macAddress;
        }
        return macAddress;
    }
     
    /**
     *  获取当前时间
     * @param type 日期时间格式
     * @param locale 地区默认为 Locale.CHINA
     * @return 按照格式返回当前时间
     */
    public String getCurrentTime(String type,Locale locale) {
        if (locale == null) {
            locale = Locale.CHINA;
        }
        Date curDate = new Date(System.currentTimeMillis());
        SimpleDateFormat sdf = new SimpleDateFormat(type,locale);
        return sdf.format(curDate);
    }
     
    /**
     * 日期格式转换
     * 
     * @param date 待转换日期
     * @param type 格式
     * @param locale 地区 默认为 Locale.CHINA
     * @return 日期
     */
    public String formatDate(String date,String type,Locale locale) {
        String fmDate = "";
        if (date != null) {
            if (locale == null) {
                locale = Locale.CHINA;
            }
            SimpleDateFormat sdf = new SimpleDateFormat(type,locale);
            fmDate = sdf.format(new Date(Long.parseLong(date)));
        }
        return fmDate;
    }
     
    /**
     * 获取当前版本名,版本号
     * @param context 上下文
     * @param type 1:版本名称,2:版本号
     * @return 版本名或版本号
     */
    public Object getCurrentVersionName(Context context,int type){
        PackageManager manager = context.getPackageManager();
        String packageName = context.getPackageName();
        String versionName = null;
        int versionCode = 0;
        try {
            PackageInfo info = manager.getPackageInfo(packageName,0);
            if (type == 1) {
                versionName = info.versionName;
                return versionName;
            }else if (type == 2) {
                versionCode = info.versionCode;
                return versionCode;
            }
             
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return null;
        }
        return null;
    }
     
    /**
     * 网络检测 
     * @param context 上下文
     * @return false:无网络,true:有网络
     */
    public boolean isOnline(Context context) {
        boolean isOnline = false;
        final ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo networkInfo = cm.getActiveNetworkInfo();
        if (networkInfo != null) {
            isOnline = networkInfo.isAvailable();
        }
        // String netType = "当前网络类型为:" + networkInfo.getTypeName();
        return isOnline;
    }
 
}



以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读