获取手机上的各种参数信息。



/** IMEI号 */

public static String imei = null;
/** 屏幕分辨率 */
public static String resolution = "";
/** Sim卡号码 */
public static String simnum = "";
/** 运营商类别 */
public static int ispType = -1;
/** 联通 */
public final static int SPTYPE_UNICOM = 0;
/** 移动 */
public final static int SPTYPE_MOBILE = 1;
/** 电信 */
public final static int SPTYPE_TELCOM = 2;
/** 网络类型 */
public static int isgType = -1;
/** 2G网络 */
public final static int GTYPE_2G = 0;
/** 3G网络 */
public final static int GTYPE_3G = 1;


public static String channel;


public static String macAddress = "";


/** 获取手机IMEI号 */
public static String obtainImei(Context context) {
if (imei == null || imei.equals("")) {
try {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
imei = tm.getDeviceId();
String mac = obtainMac(context);
imei = imei + "_" + mac;
} catch (Exception e) {
e.printStackTrace();
}
}
return imei;
}


/** 获取手机屏幕密度(如400x800) */
public static float obtainDes(Context context) {
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics displaysMetrics = new DisplayMetrics();
windowManager.getDefaultDisplay().getMetrics(displaysMetrics);
return displaysMetrics.density;
}


/** 获取手机分辨率 */
public static String obtainResolution(Context context) {
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics displaysMetrics = new DisplayMetrics();
windowManager.getDefaultDisplay().getMetrics(displaysMetrics);
return displaysMetrics.widthPixels + "x" + displaysMetrics.heightPixels;
}


/** 获取手机Sim的Num */
public static String obtainSimNum(Context context) {
TelephonyManager telMgr = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
if (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY) {
simnum = telMgr.getSimSerialNumber();
return simnum;
}
return "";
}


/**
* 获取手机的IMSI
*/
public static String obtaicIMSI(Context context) {
TelephonyManager telMgr = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return telMgr.getSubscriberId();
}


/** 获取手机运营商类型 */
public static int obtainspType(Context context) {
TelephonyManager telMgr = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
try {
if (null != telMgr.getNetworkOperator()
&& !telMgr.getNetworkOperator().equals("")) {
switch (Integer.parseInt(telMgr.getNetworkOperator())) {
case 46000:
ispType = SPTYPE_MOBILE;// 移动
break;
case 46001:
ispType = SPTYPE_UNICOM;// 联通
break;
case 46002:
ispType = SPTYPE_MOBILE;// 移动
break;
case 46003:
ispType = SPTYPE_TELCOM;// 电信
break;
case 460000:
ispType = SPTYPE_MOBILE;
break;
case 460001:
ispType = SPTYPE_UNICOM;
break;
case 460002:
ispType = SPTYPE_MOBILE;
break;
case 460003:
ispType = SPTYPE_TELCOM;
break;
default:
ispType = 10;
}
} else {
ispType = -1;
}
} catch (Exception e) {
ispType = -1;
}
return ispType;


}


/** 网络类型 */
public static int obtainNetWorkType(Context context) {
TelephonyManager telMgr = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
switch (telMgr.getNetworkType()) {
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_CDMA:
case TelephonyManager.NETWORK_TYPE_EDGE:
case TelephonyManager.NETWORK_TYPE_GPRS:
isgType = GTYPE_2G;
break;
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_UNKNOWN:
isgType = GTYPE_3G;
break;
default:
}
return isgType;


}


/** 获取Mac地址 */
public static String obtainMac(Context context) {
if (macAddress == null || macAddress == "") {
try {


WifiManager wifiMgr = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = (null == wifiMgr ? null : wifiMgr
.getConnectionInfo());
if (null != info) {
macAddress = info.getMacAddress();
}
if (!TextUtils.isEmpty(macAddress)) {
// macAddress = macAddress.replaceAll(":", "");
// macAddress = macAddress.replaceAll("-", "");
}
} catch (Exception e) {
e.printStackTrace();
}
}
return macAddress;


}


/** 打开wifi */
@SuppressWarnings("static-access")
public static void openWifi(final Context context) {
if (context == null) {
return;
}
final WifiManager mWifiManager = (WifiManager) context
.getSystemService(context.WIFI_SERVICE);
new Thread() {
int i = 0;
boolean iswifion = false;


@Override
public void run() {
super.run();
if (mWifiManager.isWifiEnabled()) {
iswifion = true;
}
while (macAddress == null || macAddress == "") {
if (i > 5)
break;
i++;
try {
if (!mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(true);// 打开wifi
}
sleep(2000);
obtainMac(context);
Log.i(TAG, i + "--->>>  " + obtainMac(context)
+ "   wifi:" + mWifiManager.isWifiEnabled());
} catch (Exception e) {
e.printStackTrace();
}


}


if (!iswifion) {
mWifiManager.setWifiEnabled(false);// 关闭wifi
}
}


}.start();


}


/**
* 获取版本号

* @return 当前应用的版本号
*/
public static String getVersion(Context context) {
try {
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(context.getPackageName(),
0);
String version = info.versionName;
return version;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}


/**
* 新的网络类型

* @param context
* @return
*/
public static String getCurrentNetType(Context context) {
String type = "";
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
if (info == null) {
type = "null";
} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {
type = "wifi";
} else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
int subType = info.getSubtype();
if (subType == TelephonyManager.NETWORK_TYPE_CDMA
|| subType == TelephonyManager.NETWORK_TYPE_GPRS
|| subType == TelephonyManager.NETWORK_TYPE_EDGE) {
type = "2g";
} else if (subType == TelephonyManager.NETWORK_TYPE_UMTS
|| subType == TelephonyManager.NETWORK_TYPE_HSDPA
|| subType == TelephonyManager.NETWORK_TYPE_EVDO_A
|| subType == TelephonyManager.NETWORK_TYPE_EVDO_0
|| subType == TelephonyManager.NETWORK_TYPE_EVDO_B) {
type = "3g";
} else if (subType == TelephonyManager.NETWORK_TYPE_LTE) {// LTE是3g到4g的过渡,是3.9G的全球标准
type = "4g";
}
}
return type;
}


/**
* 方法一:手机RAM的获取
*/
// 总的RAM
public static String getPhoneFunctionAllMemory(Context context) {
String str1 = "/proc/meminfo";// 系统内存信息文件
String str2;
String[] arrayOfString;
long initial_memory = 0;
try {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(
localFileReader, 8192);
// 下面str2,读取meminfo第一行,系统总内存大小
str2 = localBufferedReader.readLine();
arrayOfString = str2.split("\\s+");
for (String num : arrayOfString) {
Log.i(str2, num + "\t");
}
// 获得系统总内存,单位是KB,乘以1024转换为Byte
initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;
localBufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
// Byte转换为KB或者MB,内存大小规格化
long phone_ram_all = initial_memory;
return Formatter.formatFileSize(context, initial_memory);
}


/**
* 方法三:手机外置存储容量的获取
*/
// 外置存储ROM总容量
public static String getExternalSD_All(Context context) {
// 获得SD卡空间的信息
long phone_external_rom_all;
File path = Environment.getExternalStorageDirectory();
StatFs statFs = new StatFs(path.getPath());
long blocksize = statFs.getBlockSize();
long totalblocks = statFs.getBlockCount();
// 计算SD卡的空间大小
long totalsize = blocksize * totalblocks;
// 转化为可以显示的字符串
String totalsize_str = Formatter.formatFileSize(context, totalsize);
phone_external_rom_all = blocksize * totalblocks;
return totalsize_str;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值