Android 获取手机型号,版本号等。

获取手机相关信息,如手机型号,厂商,系统语言,android版本,手机串号(IMEI)。
添加权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

统一写在一个工具类中,直接调用。

public class getSystemMsgUtil {

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

        /**
         * 获取当前手机系统版本号
         *
         * @return 系统版本号
         */
        public static String getSystemVersion() {
            return android.os.Build.VERSION.RELEASE;
        }

        /**
         * 获取手机型号
         *
         * @return 手机型号
         */
        public static String getSystemModel() {
            return android.os.Build.MODEL;
        }


        /**
         * 获取手机IMEI(需要“android.permission.READ_PHONE_STATE”权限)
         *
         * @return 手机IMEI 国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号、手机“串号”
         */
        public static String getIMEI(Context ctx) {
            TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
            if (tm != null) {
                return tm.getDeviceId();
            }
            return null;
        }

        /**
         * 获取当前手机系统语言。
         *
         * @return 返回当前系统语言。例如:当前设置的是“中文-中国”,则返回“zh-CN”
         */
        public static String getSystemLanguage() {
            return Locale.getDefault().getLanguage();
        }

        /**
         * 获取当前系统上的语言列表(Locale列表)
         *
         * @return 语言列表
         */
        public static Locale[] getSystemLanguageList() {
            return Locale.getAvailableLocales();
        }
}

调用showSystemParameter()方法:

  private void showSystemParameter() {
        String TAG = "getSystemMsg";
        Log.i(TAG, "手机厂商:" + getSystemMsgUtil.getDeviceBrand());
        Log.i(TAG, "手机型号:" + getSystemMsgUtil.getSystemModel());
        Log.i(TAG, "手机当前系统语言:" + getSystemMsgUtil.getSystemLanguage());
        Log.i(TAG, "语言列表:" + getSystemMsgUtil.getSystemLanguageList());
        Log.i(TAG, "Android系统版本号:" + getSystemMsgUtil.getSystemVersion());
        Log.i(TAG, "手机IMEI:" + getSystemMsgUtil.getIMEI(getApplicationContext()));
    }

测试结果:

 I/getSystemMsg: 手机厂商:Xiaomi
 I/getSystemMsg: 手机型号:MI 3W
 I/getSystemMsg: 手机当前系统语言:zh
 I/getSystemMsg: 语言列表:[Ljava.util.Locale;@3f5dfaf
 I/getSystemMsg: Android系统版本号:6.0.1
 I/getSystemMsg: 手机IMEI:865072024568845

获取当前软件版本号的方法:

  private String getAppVersionName(Context context) {
        String versionName = "";
        try {
            PackageManager packageManager = context.getPackageManager();
            PackageInfo packageInfo = packageManager.getPackageInfo("包名", 0);
            versionName = packageInfo.versionName;
            if (TextUtils.isEmpty(versionName)) {
                return "";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return versionName;
    }

结果:

I/getSystemMsg: 软件版本:1.0

关于QQ说说功能上手机型号的显示是小米3 。而这里是手机型号:MI 3W。应该是后台通过一张android手机型号表建立对应关系。
同时也要注意,SDK1.5是不支持这个参数的。关于android.os.Build.MODEL;获取手机型号在刷机后网上说会判断失败,这里没有做测试。
更多获取手机的信息android 获取手机信息

你可能感兴趣的:(编程代码)