package czd.lib.application;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.view.Window;
import android.view.WindowManager;
import czd.lib.view.ToastUtil;
import java.util.HashMap;
public class DeviceUtil {
public static boolean networkStatus() {
ConnectivityManager manager = (ConnectivityManager)ApplicationUtil.application_context.getSystemService(Context.CONNECTIVITY_SERVICE);
State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if (wifi == State.CONNECTED || mobile == State.CONNECTED)
return true;
else
return false;
}
public static boolean isWIFIConnected() {
ConnectivityManager manager = (ConnectivityManager)ApplicationUtil.application_context.getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if (wifi == State.CONNECTED)
return true;
else
return false;
}
public static boolean isWIFIActive() {
return ((WifiManager)ApplicationUtil.application_context.getSystemService(Context.WIFI_SERVICE)).isWifiEnabled();
}
public static void setWIFIActive(boolean active) {
((WifiManager)ApplicationUtil.application_context.getSystemService(Context.WIFI_SERVICE)).setWifiEnabled(active);
}
public static HashMap<String,String> getPhoneInfo(Context context) {
HashMap<String,String> info = new HashMap<String,String>();
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
info.put("number", manager.getLine1Number());
String imsi = manager.getSubscriberId();
if (imsi != null)
{
if (imsi.startsWith("46000") || imsi.startsWith("46002"))
info.put("provider", "移动");
else if (imsi.startsWith("46001"))
info.put("provider", "联通");
else if (imsi.startsWith("46003"))
info.put("provider", "电信");
else
info.put("provider", "其他");
}
else
info.put("provider", null);
info.put("imei", manager.getDeviceId());
info.put("version", manager.getDeviceSoftwareVersion());
return info;
}
public static String getDeviceBrief() {
return Build.BRAND + "|" + Build.MODEL + "|" + Build.DEVICE + "|" + Build.VERSION.RELEASE + "|" + Build.VERSION.SDK_INT;
}
public static void call(Activity activity, String number, boolean alert) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(String.format("tel:%s", number)));
try
{
activity.startActivity(intent);
} catch (Exception e)
{
e.printStackTrace();
if (alert)
ToastUtil.showToast(activity, "由于安全软件限制,无法拨打电话");
}
}
public static void sms(Activity activity, String number, String content, boolean alert) {
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms://"));
intent.putExtra("address", number);
intent.putExtra("sms_body", content);
try
{
activity.startActivity(intent);
} catch (Exception e)
{
e.printStackTrace();
if (alert)
ToastUtil.showToast(activity, "由于安全软件限制,无法发送短信");
}
}
public static DisplayMetrics getScreenSize() {
DisplayMetrics disp = new DisplayMetrics();
((WindowManager)ApplicationUtil.application_context.getSystemService("window")).getDefaultDisplay().getMetrics(disp);
return disp;
}
public static void keepScreenOn(Activity activity) {
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}