package com.mgw.member.uitls; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONException; import android.app.Activity; import android.app.NotificationManager; import android.app.ProgressDialog; 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.net.Uri; import android.os.Bundle; import android.os.Environment; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; import com.hx.hxchat.activity.ChatActivity; import com.hx.hxchat.domain.UserFriendBean; import com.hx.hxchat.utils.UserUtils; import com.mgw.member.R; import com.mgw.member.ui.activity.SubWebviewActivity; import com.mgw.member.ui.activity.cityleague.AdinfoActivity; import com.mgw.member.ui.activity.cityleague.CityleagueActivity; import com.mgw.member.ui.activity.cityleague.GoodDetailActivity; import com.mgw.member.ui.activity.cityleague.ShopDetailAndIntroduceActivity; public class Utils { public static final String PACKAGE_NAME = "com.dong8"; @SuppressWarnings("unused") public static String getClientVersionHead(Context context) { String pName = PACKAGE_NAME; String versionName = getVersionName(context); return "Android|" + versionName; } public static String getVersionName(Context context) { String versionName = "1.0"; try { PackageInfo pinfo = context.getPackageManager().getPackageInfo(PACKAGE_NAME, PackageManager.GET_CONFIGURATIONS); versionName = pinfo.versionName; } catch (NameNotFoundException e) { } return versionName; } public static int getVersionCode(Context context) { int versionCode = 8; try { PackageInfo pinfo = context.getPackageManager().getPackageInfo(PACKAGE_NAME, PackageManager.GET_CONFIGURATIONS); versionCode = pinfo.versionCode; } catch (NameNotFoundException e) { } return versionCode; } // public static RespUser.User getUserInfo(Context context) { // String sss = PreferencesUtils.getString(context, "user", ""); // RespUser.User user = null; // TLog.i("hansen", "=========user===:"+sss); // try { // user = (RespUser.User) JSON.parseObject(sss, RespUser.User.class); // // } catch (Exception e) { // e.printStackTrace(); // return null; // } // return user; // } // /** // * 获取城市列表信息 // * @param context // * @return // */ // public static CityList getCityList(Context context) { // String sss = PreferencesUtils.getString(context, "CITY_LIST", ""); // CityList cityList=null; // try { // cityList = (CityList) JSON.parseObject(sss, CityList.class); // // } catch (Exception e) { // e.printStackTrace(); // return null; // } // return cityList; // } // // /** // * 获取当前选择的城�? * @param context // * @return // */ // public static String getCityString(Context context) { // return PreferencesUtils.getString(context, "city", ""); // // } private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if (0 < timeD && timeD < 1000) { return true; } lastClickTime = time; return false; } public static boolean isMobileNO(String mobiles) { String telRegex = "[1][358]\\d{9}"; if (TextUtils.isEmpty(mobiles)) return false; return mobiles.matches(telRegex); } /** * 拨打电话 * * @param telNumber * 电话号码 * @param isDr * true直接拨打,需要权限,false调用系统拨打界面拨打电话,不需要权限 Created by huyan */ public static void callMobliePhone(String telNumber, boolean isDr) { if (isDr) { // 传入服务, parse()解析号码 Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + telNumber)); // 通知activtity处理传入的call服务 UIUtils.getContext().startActivity(intent); } else { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + telNumber)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); UIUtils.getContext().startActivity(intent); } } /** * 拨打电话 * * @param telNumber * 电话号码 * @param isDr * true直接拨打,需要权限,false调用系统拨打界面拨打电话,不需要权限 Created by huyan */ public static void callMobliePhone(Uri telNumber, boolean isDr) { if (isDr) { // 传入服务, parse()解析号码 Intent intent = new Intent(Intent.ACTION_CALL, telNumber); // 通知activtity处理传入的call服务 UIUtils.getContext().startActivity(intent); } else { Intent intent = new Intent(Intent.ACTION_DIAL, telNumber); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); UIUtils.getContext().startActivity(intent); } } public static void toConsulterHX(final Context context, final String userid) { UIUtils.runInMainThread(new Runnable() { @Override public void run() { Intent intent = new Intent(context, ChatActivity.class); UserFriendBean friendInfo2Bean; intent.putExtra("userId", userid); try { friendInfo2Bean = UserUtils.getFriendInfo2Bean(userid); if (friendInfo2Bean != null && friendInfo2Bean.getItems().size() > 0) { intent.putExtra("userName", friendInfo2Bean.getItems().get(0).getNickName()); } } catch (JSONException e) { e.printStackTrace(); } context.startActivity(intent); } }); } /** * 去城市商家页 * * @param context * @param sid * Created by Administrator */ public static void toSupplier(final Activity context, final String sid) { UIUtils.runInMainThread(new Runnable() { @Override public void run() { Intent intent = new Intent(context, ShopDetailAndIntroduceActivity.class); intent.putExtra("sid", sid); context.startActivity(intent); context.overridePendingTransition(R.anim.slide_in_from_right, R.anim.slide_out_to_left); } }); } public static void buyInSupplier(final Activity context, final String sid, final String pid) { UIUtils.runInMainThread(new Runnable() { @Override public void run() { Intent intent = new Intent(context, GoodDetailActivity.class); intent.putExtra("sid", sid); intent.putExtra("pid", pid); context.startActivity(intent); context.overridePendingTransition(R.anim.slide_in_from_right, R.anim.slide_out_to_left); } }); } public static void transforTo(final Activity context, final String url, final String parm, final int tAG) { UIUtils.runInMainThread(new Runnable() { @Override public void run() { Intent intent = new Intent(context, SubWebviewActivity.class); intent.putExtra("url", url); intent.putExtra("type", tAG); intent.putExtra("parm", parm == null ? "" : parm); intent.putExtra("title", false); context.startActivityForResult(intent, 1); context.overridePendingTransition(R.anim.slide_in_from_right, R.anim.slide_out_to_left); } }); } public static void toAds(final Context context, final String dd) { UIUtils.runInMainThread(new Runnable() { @Override public void run() { Intent intent = new Intent(context, AdinfoActivity.class); Bundle bundle = new Bundle(); try { bundle.putString("adId", dd); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } intent.putExtras(bundle); context.startActivity(intent); } }); } /** * 去城市联盟 * * @param activity */ public static void toSupplier(final Context activity) { UIUtils.runInMainThread(new Runnable() { @Override public void run() { Intent intent = new Intent(activity, CityleagueActivity.class); activity.startActivity(intent); } }); } /** * 异步获得更新信息 * * @param LocalHtmlcod * (versionName) * @param htmlcode * @return Created by Administrator */ public static String getAppUpdateInfo(String apkVersionname) { List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("type", "app.get")); params.add(new BasicNameValuePair("telephone", "13548636482")); params.add(new BasicNameValuePair("pType", "5")); params.add(new BasicNameValuePair("pFlag", "0")); params.add(new BasicNameValuePair("pVersionName", apkVersionname)); // ); String res = PackageUtils.sendPost(params); return res; } /** * 异步获得更新信息 * * @param LocalHtmlcod * (versionName) * @param htmlcode * @return Created by Administrator */ public static String getAppUpdateInfo(String apkVersionname, String htmlcode) { LogUtils.w("apkVersionname="+apkVersionname+",htmlcode"+htmlcode); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("type", "app.get")); params.add(new BasicNameValuePair("telephone", "13548636482")); params.add(new BasicNameValuePair("pType", "5")); params.add(new BasicNameValuePair("pFlag", "1")); params.add(new BasicNameValuePair("pVersionName", htmlcode.compareTo(apkVersionname) > 0 ? htmlcode : apkVersionname)); // ); String res = PackageUtils.sendPost(params); return res; } /** * * 功能描述: <br> * 〈功能详细描述〉 sd卡中创建一个目标文件 * * @param name * @return Author: 14052012 zyn Date: 2014年11月7日 下午3:10:35 * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static String createSDCardDir(String name) { /* 下载的apk文件的保存位置 */ String savePath = Environment.getExternalStorageDirectory().getPath() + "/mgw" + "/apk"; // File sdcardDir = Environment.getExternalStorageDirectory(); // String path = sdcardDir.getPath() + "/MUDOWN"; File file = null; try { if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { File dir = new File(savePath); if (!dir.exists()) { dir.mkdirs(); } file = new File(dir + File.separator + name); if (file.exists()) { file.delete(); } file.createNewFile(); } } catch (Exception e) { } return file.getPath(); } // /storage/emulated/0/mgw/apk/storage/emulated/0/mgw/apk/upapk.apk public static void installApk(String urlPath, Context context, NotificationManager mNotificationManager, int NOTIFYCATIONID) { Intent apkIntent = new Intent(); apkIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); apkIntent.setAction(android.content.Intent.ACTION_VIEW); File apkFile = new File(urlPath); if (!apkFile.exists()) { Toast.makeText(context, "apk文件不存在!", 0).show(); return; } Log.i("jone", "apk length " + apkFile.length() + ""); Uri uri = Uri.fromFile(apkFile); apkIntent.setDataAndType(uri, "application/vnd.android.package-archive"); context.startActivity(apkIntent); if (mNotificationManager != null) { mNotificationManager.cancel(NOTIFYCATIONID);// 删除一个特定的通知ID对应的通知 } }; /** * * @param serverPath * @param savedPath 文件夹 * @param savedPathName 文件名 * @param dialog * @return */ public static File downLoad(String serverPath, String savedPath, String savedPathName,ProgressDialog dialog) { try { URL url = new URL(serverPath); HttpURLConnection _conn = (HttpURLConnection) url.openConnection(); _conn.setRequestMethod("GET"); _conn.setConnectTimeout(5000); int code = _conn.getResponseCode(); if (code == 200) { // 设置进度条的长度 if (dialog != null) { dialog.setMax(_conn.getContentLength()); } InputStream is = _conn.getInputStream(); File _file = new File(savedPath); if (!_file.exists()) { _file.mkdirs(); } File _file1 = new File(savedPath+savedPathName); if (!_file1.exists()) { _file1.createNewFile(); }else{ _file1.delete(); _file1.createNewFile(); } FileOutputStream _FileOutputStream = new FileOutputStream(_file1); int len = 0; byte[] buffer = new byte[1024]; int _total = 0; while ((len = is.read(buffer)) != -1) { _FileOutputStream.write(buffer, 0, len); _total += len; if (dialog != null) { dialog.setProgress(_total); } Thread.sleep(20); } _FileOutputStream.flush(); _FileOutputStream.close(); is.close(); return _file; } else { return null; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } }