package com.mogujie.tools;
import java.net.URLEncoder;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Environment;
import android.telephony.TelephonyManager;
/**
* 获取系统信息,用于做统计
* @author 6a209
* 4:36:50 PM Jun 2, 2012
*/
public class SysInfo{
private String mDeviceId;
private String mImie;
@SuppressWarnings("deprecation")
public static final String INFO =
URLEncoder.encode(Build.MODEL);
@SuppressWarnings("deprecation")
public static String M_SYS =
URLEncoder.encode(Build.VERSION.RELEASE);
private static String DEFAULT_STRING = "mgj_2012";
@SuppressWarnings("deprecation")
public String getDeviceId(Context ctx){
if(null != mDeviceId && mDeviceId.length() > 0){
return mDeviceId;
}
TelephonyManager tm = (TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
if(null != deviceId && deviceId.length() > 0) {
deviceId = URLEncoder.encode(deviceId);
}else {
//没取到-取mac地址-
String mac = getMacAddress(ctx);
if(null != mac && mac.length() > 0){
deviceId = "mac" + mac;
}else{
//取不到-给个默认值-
deviceId = DEFAULT_STRING;
}
}
mDeviceId = deviceId;
return deviceId;
}
private String getMacAddress(Context ctx){
WifiManager wifiManager = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if(null == wifiInfo || null == wifiInfo.getMacAddress()){
return "";
}
return wifiInfo.getMacAddress().replaceAll(":", "");
}
@SuppressWarnings("deprecation")
public String getImie(Context ctx){
if(null != mImie && mImie.length() > 0){
return mImie;
}
TelephonyManager tm = (TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE);
String scriber = tm.getSubscriberId();
if(null != scriber){
scriber = URLEncoder.encode(scriber);
}else {
scriber = DEFAULT_STRING;
}
return scriber;
}
public static boolean isWifi(Context ctx){
ConnectivityManager manager = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if(null == networkinfo){
return true;
}
if(ConnectivityManager.TYPE_WIFI == networkinfo.getType()){
return true;
}
return false;
}
public static boolean hasSDCard(){
return Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
}