package com.minggo.pluto.common;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.provider.Settings.Secure;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.minggo.pluto.util.LogUtils;
import com.minggo.pluto.util.NetworkUtils;
import com.minggo.pluto.util.StringUtils;
/**
* 应用上下文
*
* @author minggo
* @time 2014-12-2下午2:09:33
*/
public class AppContext {
private static AppContext appContext;
private AsyncTaskManager asyncTaskManager;
private String mPlatformId;
public Context context;
public AppContext() {
}
public static void initAppContent(Context context){
AppContext appContext = getInstance();
appContext.context = context;
}
public static AppContext getInstance() {
if (null == appContext) {
appContext = new AppContext();
}
return appContext;
}
public AsyncTaskManager getAsyncTaskManager() {
if (asyncTaskManager == null) {
asyncTaskManager = new AsyncTaskManager();
}
return asyncTaskManager;
}
/**
* 检测网络是否可用
*/
public boolean isNetworkConnected() {
return NetworkUtils.isNetworkConnected(context);
}
public static boolean isNetworkConnected(Context context) {
return NetworkUtils.isNetworkConnected(context);
}
/**
* 获取当前网络类型
*
* @return 0:没有网络 1:WIFI网络 2:WAP网络 3:NET网络
*/
public int getNetworkType() {
return NetworkUtils.getNetworkType(context);
}
/**
* 获取手机唯一识别码
*
* @return
*/
public String getAndroidId(int bookid) {
String android_id = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
if (android_id == null || android_id == "") {
android_id = android.os.Build.VERSION.RELEASE + android.os.Build.MODEL + bookid;
}
if (StringUtils.isEmpty(android_id)) {
android_id = "";
}
return android_id;
}
/**
* 获取手机的IMEI
*
* @return
*/
public String getAndroidIMEI() {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(
Context.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();
if (!StringUtils.isEmpty(imei)) {
return imei;
}
return "this_phone_has_no_imei";
}
/**
* 获取手机型号
*
* @return
*/
public String GetMobileVersion() {
return android.os.Build.MODEL;
}
/**
* 获取系统的版本号
*
* @return
*/
public String GetAndroidVersion() {
return android.os.Build.VERSION.RELEASE;
}
/**
* 获取App安装包信息
*
* @return
*/
public PackageInfo getPackageInfo() {
PackageInfo info = null;
try {
info = context.getPackageManager()
.getPackageInfo(context.getPackageName(), 0);
} catch (NameNotFoundException e) {
e.printStackTrace(System.err);
}
if (info == null) {
info = new PackageInfo();
}
return info;
}
}