package cn.crane.application.greenlife;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import android.app.ActivityManager;
import android.app.Application;
import android.app.ActivityManager.RunningTaskInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
import android.widget.Toast;
/**
*
* @author Ruifeng.yu Email:xyyh0116@aliyun.com
*
* @date Jun 8, 2015
*/
public class App extends Application {
public static final String ACTION_LOGIN_CHANGED = "action_login_changed";
public static float fDensity;
private static App instance;
public static String packageName = "";
private static String uniqueId;
private Toast toast;
@Override
public void onCreate() {
super.onCreate();
instance = this;
packageName = getPackageName();
fDensity = getResources().getDisplayMetrics().density;
// UpLoadGPS.startAction(this);
}
/**
* 判断当前应用程序处于前台还是后台
*/
public static boolean isApplicationBroughtToBackground(final Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
/**
* 获取设备号
*
* @return
*/
public static String getDeviceNo() {
try {
final TelephonyManager tm = (TelephonyManager) instance
.getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, tmPhone, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = ""
+ android.provider.Settings.Secure.getString(
instance.getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(),
((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());
uniqueId = deviceUuid.toString();
} catch (Exception e) {
e.printStackTrace();
}
return uniqueId;
}
/**
* Show Toast
*
* @param msg
* the message to show
*/
private void showTextToast(String msg) {
if (toast == null) {
toast = android.widget.Toast.makeText(getApplicationContext(), msg,
android.widget.Toast.LENGTH_SHORT);
} else {
toast.setText(msg);
}
toast.show();
}
/**
* Show Toast
*
* @param resId
* the message resources id in string.xml
*/
private void showTextToast(int resId) {
showTextToast(getString(resId));
}
/**
* Show Toast
*
* @param msg
*/
public static void showToast(String msg) {
instance.showTextToast(msg);
}
/**
* Show Toast
*
* @param resId
*/
public static void showToast(int resId) {
instance.showTextToast(resId);
}
/**
* Check network available
*
* @return
*/
public static boolean checkNetwork() {
NetworkInfo info = ((ConnectivityManager) instance
.getSystemService(Context.CONNECTIVITY_SERVICE))
.getActiveNetworkInfo();
return (info != null) && (info.isConnected());
}
public static App getInstance() {
return instance;
}
/**
* get resId by drawable name
*
* @param drawableName
* drawable name
* @return resId
*/
public static int getDrawableId(String drawableName) {
int iRes = 0;
if (instance != null) {
iRes = instance.getResources().getIdentifier(drawableName,
"drawable", instance.getPackageName());
}
return iRes;
}
/**
* get resId by string name
*
* @param stringName
* string name
* @return resId
*/
public static int getStringId(String stringName) {
int iRes = 0;
if (instance != null) {
iRes = instance.getResources().getIdentifier(stringName, "string",
instance.getPackageName());
}
return iRes;
}
public static String getStr(int resid) {
if (instance != null) {
return instance.getString(resid);
}
return "";
}
/**
* 获取版本号
*
* @return 当前应用的版本号
*/
public static String getVersion() {
try {
PackageManager manager = instance.getPackageManager();
PackageInfo info = manager.getPackageInfo(instance.getPackageName(), 0);
return instance.getString(R.string.app_name) + " V" + info.versionName;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 获取版本号
*
* @return 当前应用的版本号
*/
public static String getVersionName() {
try {
PackageManager manager = instance.getPackageManager();
PackageInfo info = manager.getPackageInfo(instance.getPackageName(), 0);
return info.versionName;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 获取版本号
*
* @return 当前应用的版本号
*/
public static int getVersionCode() {
try {
PackageManager manager = instance.getPackageManager();
PackageInfo info = manager.getPackageInfo(instance.getPackageName(), 0);
return info.versionCode;
} catch (Exception e) {
e.printStackTrace();
}
return 1;
}
/**
* get current time
*
* @return yyyy-mm-dd
*/
public static String getCurrentTime() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sTime = format.format(new Date());
System.out.println("CurrentTime:" + sTime);
return sTime;
}
}