package com.withiter.quhao.util;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import com.withiter.quhao.R;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.Cursor;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Toast;
public class ActivityUtil {
private static final String TAG = "ActivityUtil";
/**
* 窗体跳转
*
* @param old
* @param cls
*/
public static void jump(Context old, Class<?> cls, Bundle mBundle) {
jump(old, cls, mBundle, false);
}
/**
* 窗体跳转
*
* @param old
* @param cls
*/
public static void jump(Context old, Class<?> cls, Bundle mBundle,
boolean clearTop) {
Intent intent = new Intent(old, cls);
if (mBundle != null) {
intent.putExtras(mBundle);
}
if (clearTop) {
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
old.startActivity(intent);
// 仿Iphone切换效果
((Activity) old).overridePendingTransition(R.anim.zoomin,
R.anim.zoomout);
// 原来的切换效果
// ((Activity) old).overridePendingTransition(R.anim.right_slide_in,
// R.anim.right_slide_out);
}
/**
* 窗体跳转
*
* @param old
* @param cls
*/
public static void jumpForResult(Context old, Class<?> cls,
int requestCode, Bundle mBundle) {
Intent intent = new Intent();
intent.setClass(old, cls);
if (mBundle != null) {
intent.putExtras(mBundle);
}
Activity activity = (Activity) old;
activity.startActivityForResult(intent, requestCode);
((Activity) old).overridePendingTransition(R.anim.right_slide_in,
R.anim.right_slide_out);
}
/**
* 窗体跳转
*
* @param old
* @param cls
*/
public static void jumpForResult(Context old, Class<?> cls, int requestCode) {
jumpForResult(old, cls, requestCode, null);
}
public static void jump(Context old, Class<?> cls) {
jump(old, cls, null);
}
/**
* 通过地址跳转到网
*
* @param activity
* @param url
*/
public static void jumbToWeb(Activity activity, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.right_slide_in,
R.anim.right_slide_out);
}
public static void runInUIThread(Context context, final Toast toast) {
final Activity activity = (Activity) context;
activity.runOnUiThread(new Runnable() {
public void run() {
toast.show();
}
});
}
public static boolean isTopActivy(Activity activity,String activityName)
{
if (null == activity || StringUtils.isNull(activityName)) {
return false;
}
ActivityManager am = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
Log.e("wjzwjz", "activity Name : " + activityName + " , cn. className : " + cn.getClassName());
if (cn != null && activityName.equals(cn.getClassName())) {
return true;
}
return false;
}
public static Display getWindowDisplay(Context context) {
return ((WindowManager) context
.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
}
/**
* 获得手机型号
*/
public static String getDeviceType() {
return Build.MODEL;
}
/**
* 获得版本号
*
* @param ctx
* @return
*/
public static int getVersionCode(Context ctx) {
PackageManager manager = ctx.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(ctx.getPackageName(), 0);
int code = info.versionCode; // 版本号
// Log.d(TAG, "versionCode="+code+", pkg="+info.packageName);
return code;
} catch (NameNotFoundException e) {
Log.e(TAG, e.getMessage(), e);
return 0;
}
}
/**
* 获得版本名称
*
* @param ctx
* @return
*/
public static String getVersionName(Context ctx) {
PackageManager manager = ctx.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(ctx.getPackageName(), 0);
return info.versionName;
} catch (NameNotFoundException e) {
Log.e(TAG, e.getMessage(), e);
return "";
}
}
public static float getPX(Context context, int dipValue) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30,
context.getResources().getDisplayMetrics());
}
/**
* 检测是否连接了网络
*
* @param context
* @return
*/
public static boolean isNetWorkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] infoArray = connectivity.getAllNetworkInfo();
if (infoArray != null) {
for (NetworkInfo info : infoArray) {
if (info.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
/**
* 拨打电话
*/
public static void call(Context context, String phoneNo) {
// 已经绑定电话的场合
String number = "tel:" + phoneNo;
try {
// Intent callIntent = new Intent(Intent.ACTION_CALL);
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse(number));
context.startActivity(callIntent);
} catch (ActivityNotFoundException e) {
}
}
/**
* 去系统设置界面
*/
public static void gotoSysSetting(Context context) {
try {
Intent settingsIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
context.startActivity(settingsIntent);
} catch (ActivityNotFoundException e) {
}
}
/**
* 获得手机Ip
*
* @return
*/
public static String getLocalIpAddress() {
try {
Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces();
for (; en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();
for (; enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException e) {
}
return "";
}
public static boolean existSDcard() {
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)) {
return true;
} else {
return false;
}
}
/**
* 通过uri获得文件名
*
* @param contentUri
* @return
*/
public static String getRealPathFromURI(Activity activity, Uri uri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = activity.managedQuery(uri, proj, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
/**
* 获得手机分辨率
*/
public static DisplayMetrics getWindowsPixels(Activity activity) {
DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
// 获得手机的宽带和高度像素单位为px
return dm;
}
/**
* 判断是否是联通wcdma
*/
public static boolean isWcdma(Activity activity) {
// 获得手机SIMType
TelephonyManager tm = (TelephonyManager) activity
.getSystemService(Context.TELEPHONY_SERVICE);
int nType = tm.getNetworkType();
int pType = tm.getPhoneType();
String nOperator = tm.getNetworkOperator();
if (nOperator.equals("46001")) {
// 联通的场合
if (pType == TelephonyManager.PHONE_TYPE_GSM) {
// gsm的场合
if (nType == TelephonyManager.NETWORK_TYPE_HSDPA
|| nType == TelephonyManager.NETWORK_TYPE_HSUPA
|| nType == TelephonyManager.NETWORK_TYPE_HSPA) {
// WCDMA的场合
return true;
}
}
}
return false;
}
/**
* 获取IMSI信息
*/
public static String getIMSI(Context context) {
TelephonyManager telManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String imsi = telManager.getSubscriberId();
return imsi;
}
/**
* 判断WIFI是否打开
*/
public static boolean isWifiOpen(Context activity) {
// 获得手机SIMType
WifiManager wm = (WifiManager) activity
.getSystemService(Context.WIFI_SERVICE);
return wm.isWifiEnabled();
}
/**
* 调用拍照程序拍摄图片,返回图片对应的Uri,应处理onActivityResult
* ContentResolver的insert方法会默认创建一张空图片,如取消了拍摄,应根据方法返回的Uri删除图片
*
* @param activity
* @param requestCode
* @param fileName
* @return
*/
public static Uri captureImage(Activity activity, int requestCode,
String fileName, String desc) throws Exception {
// 设置文件参数
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION, desc);
// 获得uri
Uri imageUri = activity.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
activity.startActivityForResult(intent, requestCode);
return imageUri;
}
/**
* 从本地选取图片,应处理onActivityResult,示例: protected void onActivityResult(int
* requestCode, int resultCode, Intent data) { //获得图片的真实地址 String path =
* getPathByUri(this, data.getData()); }
*
* @param activity
* @param requestCode
*/
public static void pickImage(Activity activity, int requestCode)
throws Exception {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
// intent.putExtra("return-data", true);
activity.startActivityForResult(intent, requestCode);
}
public static boolean isGPSOn(Context context)
{
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean flag = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
return flag;
}
}