最近又涉及到了獲取設(shè)備信息的東西沐鼠,因為之前做過但是沒有做記錄徽惋,導(dǎo)致這次又做的時候又重新去百度回怜,所以這次做完了要記錄一下距辆。
1.獲取手機廠商
public String getDeviceBrand(){
return android.os.Build.BRAND;
}
2.獲取設(shè)備型號
public String getSystemModel() {
return android.os.Build.MODEL;
}
3.獲取當(dāng)前系統(tǒng)版本
public String getSystemVersion() {
return android.os.Build.VERSION.RELEASE;
}
4.獲取運營商的名字
public static String getOperatorName(Context context) {
/*
* getSimOperatorName()就可以直接獲取到運營商的名字
* 也可以使用IMSI獲取翘紊,getSimOperator()蔽氨,然后根據(jù)返回值判斷,例如"46000"為移動
* IMSI相關(guān)鏈接:http://baike.baidu.com/item/imsi
*/
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
// getSimOperatorName就可以直接獲取到運營商的名字
return telephonyManager.getSimOperatorName();
}
5.獲取聯(lián)網(wǎng)方式
public static String getNetworkState(Context context) {
String strNetworkType = "";
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); // 獲取網(wǎng)絡(luò)服務(wù)
//NetworkInfo networkInfo = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo();
NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable())
{
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI)
{
strNetworkType = "WIFI";
}
else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE)
{
String _strSubTypeName = networkInfo.getSubtypeName();
// TD-SCDMA networkType is 17
int networkType = networkInfo.getSubtype();
switch (networkType) {
case TelephonyManager.NETWORK_TYPE_GPRS:
case TelephonyManager.NETWORK_TYPE_EDGE:
case TelephonyManager.NETWORK_TYPE_CDMA:
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_IDEN: //api<8 : replace by 11
strNetworkType = "2G";
break;
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_EVDO_B: //api<9 : replace by 14
case TelephonyManager.NETWORK_TYPE_EHRPD: //api<11 : replace by 12
case TelephonyManager.NETWORK_TYPE_HSPAP: //api<13 : replace by 15
strNetworkType = "3G";
break;
case TelephonyManager.NETWORK_TYPE_LTE: //api<11 : replace by 13
strNetworkType = "4G";
break;
default:
// http://baike.baidu.com/item/TD-SCDMA 中國移動 聯(lián)通 電信 三種3G制式
if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000"))
{
strNetworkType = "3G";
}
else
{
strNetworkType = _strSubTypeName;
}
break;
}
}
}
return strNetworkType;
}
6.獲取屏幕分辨率
public static Integer[] getScreenWH(Context context) {
DisplayMetrics dm = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay()
.getMetrics(dm);
return new Integer[]{dm.widthPixels, dm.heightPixels};
}
7.檢查當(dāng)前網(wǎng)絡(luò)是否可用
public static boolean isNetworkAvailable(Context context) {
/* 獲取手機所有連接管理對象(包括對wi-fi,net等連接的管理) */
if (null == context) {
context = MyApplication.getInstance();
}
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
return false;
} else {
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
if (networkInfo != null && networkInfo.length > 0) {
for (int i = 0; i < networkInfo.length; i++) {
/* 判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否為連接狀態(tài) */
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}