这是我们兄弟连一个新的目标,就是打造一个万能工具类,让老铁们在新项目中可以直接拿过去用,但是这么目标还是需要一步一步来实现的,今天就开始我们的第一篇工具类文章。
工具类讲究的就是使用方便,我在这先介绍这一篇工具类 , 总而言之:
添加权限(代码块有),
初始化就直接愉快的使用吧!
package com.example.bandofbrotherszts.androidphoneinfo;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import java.util.UUID;
/**
* Created by ${zhaojz} on 2017/8/31.
*/
//权限
//
/** throw new UnsupportedOperationException("you can't instantiate me...");
* 可以代替return null 来提示你自己
*/
public class AndroidDeviceInfo {
public static String androidID = null;//androidID
public static String mSerial = null;//SIM卡的序列号
public static String deviceID = null;//设备ID
public static String androidUuidID = null;//Uuid加密的android设备唯一标识
public static String phoneProducer = null;//手机厂商
public static String IMEI = null;//手机IM
public static String phoneModel = null;//手机型号
public static String systemVersion = null;//手机系统版本号
public static String SDKVersion = null;//SDK版本
public static String versionName = null;//软件版本
public static Context context;
/**
* 本工具类初始化
* @param context
*/
public static void init(Context context){
AndroidDeviceInfo.context= context;
}
/**
* 未加密
* @return 设备ID
*/
public static String getAndroidID(){
androidID = "" + android.provider.Settings.Secure.getString(context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
return androidID;
}
@SuppressLint("ByteOrderMark")
public static String getAndroidID2(){
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
deviceID = "" + tm.getDeviceId();
mSerial = "" + tm.getSimSerialNumber();
// getSimOperatorName() Returns the Service Provider Name (SPN).
// 获取服务提供商名字,比如电信,联通,移动
// String imsi = telManager.getSubscriberId();
// if(imsi!=null){ if(imsi.startsWith(“46000″) || imsi.startsWith(“46002″))
// {因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,
// 134/159号段使用了此编号 //中国移动
// }else if(imsi.startsWith(“46001″)){
// 中国联通
// }else if(imsi.startsWith(“46003″)){
// 中国电信
// } }
// getCellLocation() 返回的单元格位置的装置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION
// getLine1Number() 返回设备的电话号码(MSISDN号码) READ_PHONE_STATE
// getNetworkOperatorName() 返回注册的网络运营商的名字
// getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商
// getNetworkCountryIso() 返回注册的网络运营商的国家代码
// getSimCountryIso() 返回SIM卡运营商的国家代码 READ_PHONE_STATE
// getSimOperator() 返回SIM卡运营商的单个核细胞数+冶 READ_PHONE_STATE
// getSimOperatorName() 返回SIM卡运营商的名字 READ_PHONE_STATE
// getSimSerialNumber() 返回SIM卡的序列号 READ_PHONE_STATE
// getNetworkType() 返回网络设备可用的类型。
return deviceID ;
}
/**
* UUID 加密过后
* @return android唯一标识
*/
public static String getUUIDAndroidID(String androidID,String deviceID,String tmSerial){
UUID deviceUuid = new UUID(androidID.hashCode(), ((long)deviceID.hashCode() << 32) | tmSerial.hashCode());
androidUuidID = deviceUuid.toString();
return androidUuidID;
}
/**
* 手机厂商
* @return
*/
public static String getPhoneProducer() {
phoneProducer = android.os.Build.BRAND;
return phoneProducer;
}
/**
* 手机IM
* @return
*/
public static String getIMEI(Context ctx) {
TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
if (tm != null) {
IMEI = tm.getDeviceId();
return IMEI;
}
return null;
}
/**
* 获取手机型号
* @return
*/
public static String getPhoneModel() {
phoneModel = android.os.Build.MODEL;
return phoneModel;
}
/**
* 获取系统版本号
* @return
*/
public static String getSystemVersion() {
systemVersion = android.os.Build.VERSION.RELEASE;
return systemVersion;
}
/**
* SDK 版本
* @return
*/
public static String getSDKVersion() {
SDKVersion = android.os.Build.VERSION.SDK ;
return SDKVersion;
}
/**
* 当前软件版本
* @return
*/
private String getAppVersionName() {
try {
PackageManager packageManager = context.getPackageManager();
// context.getPackageName() 当前软件包名
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
// packageInfo.versionCode
versionName = packageInfo.versionName;
if (TextUtils.isEmpty(versionName)) {
return "";
}
} catch (Exception e) {
e.printStackTrace();
}
return versionName;
}
}