package com.wisedu.scc.love.utils;
import android.app.ActivityManager;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import org.androidannotations.annotations.EBean;
import java.util.HashMap;
import java.util.Map;
@EBean
public class TerminalHelper {
/**
* 获取TelephonyManager
*/
public static TelephonyManager getTelephonyManager(Context c) {
TelephonyManager tm = (TelephonyManager)
c.getSystemService(Context.TELEPHONY_SERVICE);
return tm;
}
/**
* 获取WifiManager
*/
public WifiManager getWifiManager(Context c) {
WifiManager wifiManager = (WifiManager)
c.getSystemService(Context.WIFI_SERVICE);
return wifiManager;
}
/**
* 获取ActivityManager
*/
public ActivityManager getActivityManager(Context c) {
ActivityManager activityManager = (ActivityManager)
c.getSystemService(Context.ACTIVITY_SERVICE);
return activityManager;
}
/**
* 获取isConnected()
*/
public boolean isConnected(Context c) {
// 网络连接管理器
ConnectivityManager mConnectivity = (ConnectivityManager)
c.getSystemService(Context.CONNECTIVITY_SERVICE);
// 电话管理器
TelephonyManager mTelephony = (TelephonyManager)
c.getSystemService(Context.TELEPHONY_SERVICE);
// 检查网络连接,如果无网络可用,就不需要进行连网操作等
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if (info == null || !mConnectivity.getBackgroundDataSetting()) {
return false;
} // 判断网络连接类型,只有在3G或wifi里进行一些数据更新。
int netType = info.getType();
int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
return info.isConnected();
} else if (netType == ConnectivityManager.TYPE_MOBILE
&& netSubtype == TelephonyManager.NETWORK_TYPE_UMTS
&& !mTelephony.isNetworkRoaming()) {
return info.isConnected();
} else {
return false;
}
}
/**
* 获取屏幕相关信息,宽高、密度等
* @return
*/
public static Map<String, Object> getScreen(WindowManager wm){
// 显示度量,显示终端设备的信息
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
int screenWidth = (int)(dm.widthPixels * density + 0.5f); // 屏幕宽(px,如:480px)
int screenHeight = (int)(dm.heightPixels * density + 0.5f); // 屏幕高(px,如:800px)
Map<String, Object> map = new HashMap<String, Object>();
map.put("W", screenWidth);
map.put("H", screenHeight);
map.put("D", density);
return map;
}
}