package com.keju.maomao.util;
import java.util.List;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Environment;
import android.os.Vibrator;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import com.keju.maomao.CommonApplication;
/**
* android系统相关常用操作
* @author Zhoujun
* 说明:提供一些android系统常用操作:如系统版本,图片操作等
*/
public class AndroidUtil {
/**
* 获取sdk版本
* @return
*/
public static int getAndroidSDKVersion() {
return android.os.Build.VERSION.SDK_INT;
}
/**
* 返回当前程序版本号
*/
public static int getAppVersionCode(Context context) {
int versionCode = 0;
try {
// ---get the package info---
PackageManager pm = context.getPackageManager();
// 这里的context.getPackageName()可以换成你要查看的程序的包名
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
versionCode = pi.versionCode;
} catch (Exception e) {
Log.e("VersionInfo", "Exception", e);
}
return versionCode;
}
/**
* 返回当前程序版本名
*/
public static String getAppVersionName(Context context) {
String versionName = "0.0.0";
try {
// ---get the package info---
PackageManager pm = context.getPackageManager();
// 这里的context.getPackageName()可以换成你要查看的程序的包名
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
versionName = pi.versionName;
if (versionName == null || versionName.length() <= 0) {
return "";
}
} catch (Exception e) {
Log.e("VersionInfo", "Exception", e);
}
return versionName;
}
/**
* 获得设备识别认证码
*
* @return
*/
public static String getIMEI(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
if (tm == null) {
return null;
}
return tm.getDeviceId();
}
/**
* 退出应用
*
* @param context
*/
public static void exitApp(Context context) {
List<Activity> list = ((CommonApplication) context
.getApplicationContext()).getActivities();
for (Activity ac : list) {
ac.finish();
}
list.clear();
System.gc();
// 关闭service
// Intent it = new Intent(context,PullService.class);
// context.stopService(it);
}
/**
* 关闭软键盘
* @param context
*/
public static void closeKeyBox(Context context) {
InputMethodManager imm = (InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
final View v = ((Activity) context).getWindow().peekDecorView();
imm.hideSoftInputFromWindow(v.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
/**
* 判断sd卡是否安装
*
* @return
*/
public static boolean existSdcard() {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
return true;
} else {
return false;
}
}
/**
* 获得屏幕密度
*
* @param activity
* @return
*/
public static float getDensity(Context context) {
DisplayMetrics dm = context.getApplicationContext().getResources()
.getDisplayMetrics();
return dm.density;
}
/**
* 手机震动工具类
* @author Administrator
*
*/
/**
* final Context context :调用该方法的Activity实例
* long milliseconds :震动的时长,单位是毫秒
* long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒
* boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次
*/
public static void Vibrate(Context context, long milliseconds) {
Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(milliseconds);
}
public static void Vibrate(Context context, long[] pattern,boolean isRepeat) {
Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(pattern, isRepeat ? 1 : -1);
}
}