package com.wise.pubclas;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import com.baidu.mapapi.navi.BaiduMapAppNotSupportNaviException;
import com.baidu.mapapi.navi.BaiduMapNavigation;
import com.baidu.mapapi.navi.NaviPara;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.wise.data.TimeData;
import com.wise.sharesdk.OnekeyShare;
import com.wise.wawc.R;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.text.format.Time;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Toast;
public class GetSystem {
private static final String TAG = "GetSystem";
/**
* 获取gps状态
*
* @param mContext
* @return
*/
public static boolean GPSSettings(Context mContext) {
LocationManager alm = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
if (alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
return true;
} else {
return false;
// Intent myIntent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
// mContext.startActivity(myIntent);
}
}
/**
* 检测网络
*
* @param context
* @return
*/
public static boolean checkNetWorkStatus(Context context) {
boolean result;
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netinfo = cm.getActiveNetworkInfo();
if (netinfo != null && netinfo.isConnected()) {
result = true;
} else {
result = false;
}
return result;
}
/**
* 返回当前月份
*
* @return
*/
public static TimeData GetNowMonth() {
Time time = new Time();
time.setToNow();
String year = ChangeTime(time.year);
String month = ChangeTime(time.month + 1);
String str = year + "-" + month;
TimeData timeData = new TimeData();
timeData.setDate(str);
timeData.setYear(year);
timeData.setMonth("" + (time.month + 1));
return timeData;
}
/**
* 调整时间格式
*
* @param 9
* @return 09
*/
public static String ChangeTime(int i) {
String str = null;
if (i < 10) {
str = "0" + i;
} else {
str = "" + i;
}
return str;
}
/**
* 解决时区问题
* @param Date
* @return
*/
public static String ChangeTimeZone(String Date){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar nowDate = Calendar.getInstance();
nowDate.setTime(sdf.parse(Date));
nowDate.add(Calendar.HOUR_OF_DAY, 8);
String Date1 = sdf.format(nowDate.getTime());
return Date1;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
/**
* 获取指定月份
*
* @param Month 2013-12
* @param number 上个月填-1 ,下个月填1
* @return
*/
public static TimeData GetNextMonth(String Month, int number) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Calendar nowDate = Calendar.getInstance();
nowDate.setTime(sdf.parse(Month));
nowDate.add(Calendar.MONTH, number);
String Date = sdf.format(nowDate.getTime());
TimeData timeData = new TimeData();
timeData.setDate(Date);
timeData.setYear("" + nowDate.get(Calendar.YEAR));
timeData.setMonth("" + (nowDate.get(Calendar.MONTH) + 1));
return timeData;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 获取指定天
*
* @param Date 2013-12-01
* @param number 前一天填-1 ,后一天填1
* @return
*/
public static String GetNextData(String Date, int number) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar nowDate = Calendar.getInstance();
nowDate.setTime(sdf.parse(Date));
nowDate.add(Calendar.DATE, number);
String newDate = sdf.format(nowDate.getTime());
return newDate;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String GetNextYear(String Date ,int year){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar nowDate = Calendar.getInstance();
nowDate.setTime(sdf.parse(Date));
nowDate.add(Calendar.YEAR, year);
String newDate = sdf.format(nowDate.getTime());
return newDate;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 格式化显示时间,今天,昨天,日期
* @param time 2014-02-10 06:17
* @return 数组:0 日期,1 时间
*/
public static String[] formatDateTime(String time) {
SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm");
if(time==null ||"".equals(time)){
return null;
}
Date date = null;
try {
date = format.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar current = Calendar.getInstance();
Calendar today = Calendar.getInstance(); //今天
today.set(Calendar.YEAR, current.get(Calendar.YEAR));
today.set(Calendar.MONTH, current.get(Calendar.MONTH));
today.set(Calendar.DAY_OF_MONTH,current.get(Calendar.DAY_OF_MONTH));
// Calendar.HOUR——12小时制的小时数 Calendar.HOUR_OF_DAY——24小时制的小时数
today.set( Calendar.HOUR_OF_DAY, 0);
today.set( Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
Calendar yesterday = Calendar.getInstance(); //昨天
yesterday.set(Calendar.YEAR, current.get(Calendar.YEAR));
yesterday.set(Calendar.MONTH, current.get(Calendar.MONTH));
yesterday.set(Calendar.DAY_OF_MONTH,current.get(Calendar.DAY_OF_MONTH)-1);
yesterday.set( Calendar.HOUR_OF_DAY, 0);
yesterday.set( Calendar.MINUTE, 0);
yesterday.set(Calendar.SECOND, 0);
current.setTime(date);
String[] myDate = new String[3];
if(current.after(today)){
myDate[0] = "今天";
myDate[1] = time.split(" ")[1];
myDate[2] = "今天";
}else if(current.before(today) && current.after(yesterday)){
myDate[0] = "昨天";
myDate[1] = time.split(" ")[1];
myDate[2] = "昨天";
}else{
myDate[0] = time.substring(0, 10);
myDate[1] = time.split(" ")[1];
myDate[2] = time.substring(5, 10);
}
return myDate;
}
/**
* 计算间隔时间
* @param Second
* @return
*/
public static String ProcessTime(int Second){
if(Second < 60){
return Second + "秒";
}else if(Second < 3600){
return Second/60 + "分钟";
}else{
return Second/(60*60) + "小时";
}
}
/**
* 首页时间显示
* @param time
* @return
*/
public static String sortHomeTime(String time){
if(time == null || time.equals("")){
return "";
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
java.util.Date begin = sdf.parse(time);
java.util.Date end = sdf.parse(GetNowTime());
int l= (int) ((end.getTime() - begin.getTime())/1000);
if(l > (60*60*24)){
return "更新于" +time.substring(0, 10);
}else{
return ProcessTime(l) + "前更新";
}
} catch (ParseException e) {
e.printStackTrace();
return "";
}
}
/**
* 调用百度地图导航
*
* @param mActivity
* @param pt1
* @param pt2
* @param str1
* @param str2
*/
public static void FindCar(Activity mActivity, GeoPoint pt1, GeoPoint pt2,
String str1, String str2) {
NaviPara para = new NaviPara();
para.startPoint = pt1; // 起点坐标
para.startName = str1;
para.endPoint = pt2; // 终点坐标
para.endName = str2;
try {
// 调起百度地图客户端导航功能,参数this为Activity。
BaiduMapNavigation.openBaiduMapNavi(para, mActivity);
} catch (BaiduMapAppNotSupportNaviException e) {
// 在此处理异常
Log.d(TAG, "未安装百度地图,开始web导航");
BaiduMapNavigation.openWebBaiduMapNavi(para, mActivity);
}
}
/**
* 获取版本信息,判断时候有更新
*
* @param context
* @param 包名称
* @return versionName,版本名称,如1.2
*/
public static String GetVersion(Context context, String packString) {
PackageManager pm = context.getPackageManager();
try {
PackageInfo pi = pm.getPackageInfo(packString, 0);
return pi.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
/**
* 从服务器读取图片
*
* @param src
* @return
*/
public static Bitmap getBitmapFromURL(String Path) {
try {
Log.d(TAG, Path);
URL url = new URL(Path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
/**
* 从服务器读取文件
*
* @param url
* @return
*/
public static String getStringFromURL(String url) {
try {
URL myURL = new URL(url);
URLConnection httpsConn = (URLConnection) myURL.openConnection();
httpsConn.setConnectTimeout(20 * 1000);
httpsConn.setReadTimeout(20 * 1000);
InputStreamReader insr = new InputStreamReader(
httpsConn.getInputStream(), "UTF-8");
BufferedReader br = new BufferedReader(insr, 1024);
String data = "";
String line = "";
while ((line = br.readLine()) != null) {
data += line;
}
insr.close();
return data;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
/**
* 保存图片在sd卡上(jgp格式用到)
*
* @param bitmap
* @param name
* @param quality 压缩比例
*/
public static void saveImageSD(Bitmap bitmap, String path, String name,int quality) {
File file = new File(path);
if (!file.exists()) {
System.out.println("创建文件夹");
file.mkdirs();// 创建文件夹
}
String fileName = path + name;
System.out.println(fileName + ",bitmap.getWidth()=" + bitmap.getWidth());
FileOutputStream b = null;
try {
b = new FileOutputStream(fileName);
System.out.println(name.substring(name.lastIndexOf(".")+1, name.length()));
if(name.substring(name.lastIndexOf(".") + 1, name.length()).equals("png")){
System.out.println("png");
bitmap.compress(Bitmap.CompressFormat.PNG, quality, b);// 把数据写入文件
}else{
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, b);// 把数据写入文件
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void displayBriefMemory(Context mContext) {
Log.e("tag", "内存" + Runtime.getRuntime().totalMemory() / 1024 / 1024
+ "M");
}
/**
* 经纬度格式转换,把服务器得到的string转成int类型
* @param string 116.000000
* @return 116000000
*/
public static int StringToInt(String str) {
try {
Double point_doub = Double.parseDouble(str);
return (int) (point_doub * 1000000);
} catch (NumberFormatException e) {
Log.d("GetSystem", "经纬度格式转换异常:NumberFormatException");
return 0;
}
}
/**
* 判断是否提醒
* @param time
* @return
*/
public static boolean isTimeOut(String time){
if(time == null || time.equals("")){
return false;
}
if(time.length() == 10){
time = time + " 00:00:00";
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
java.util.Date begin = sdf.parse(time);
java.util.Date end = sdf.parse(GetNowTime());
return end.getTime() >= begin.getTime();
} catch (ParseException e) {
e.printStackTrace();
return false;
}
}
public static String GetNowTime() {
Time time = new Time();
time.setToNow();
String year = ChangeTime(time.year);
String month = ChangeTime(time.month + 1);
String day = ChangeTime(time.monthDay);
String minute = ChangeTime(time.minute);
String hour = ChangeTime(time.hour);
String sec = ChangeTime(time.second);
String str = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + sec;
return str;
}
/*
* 计算车友圈图片显示尺寸
* @param context
*/
public static void getScreenInfor(Activity activity){
String tempMargins = activity.getResources().getString(R.dimen.margins1);
int margins = Integer.valueOf(tempMargins.substring(0,tempMargins.lastIndexOf(".")));
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,margins, activity.getResources().getDisplayMetrics());
Variable.margins = px;
WindowManager manager = activity.getWindowManager();
Display display = manager.getDefaultDisplay();
int screenWidth = (int) ((display.getWidth() - 2*px)*0.8);
int imageWidth = (screenWidth - 2*px)/3;
Variable.smallImageReqWidth = imageWidth;
}
/*
* 计算车友圈头部标题高度
* @param context
*/
public static int vehicleTitleHeight(Activity activity){
//获取屏幕高0.19
int width = (int) (activity.getWindowManager().getDefaultDisplay().getWidth() * 0.19);
//像素转dip
int dip = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,width, activity.getResources().getDisplayMetrics());
return dip;
}
/**
* 分享
* @param mContext
* @param Content
* @param imagePath
* @param Lat
* @param Lon
*/
public static void share(Context mContext,String Content,String imagePath,
float Lat,float Lon,String Title,String mapUrl) {
final OnekeyShare oks = new OnekeyShare();
oks.setNotification(R.drawable.ic_launcher, "app_name");
oks.setAddress("");
oks.setTitle(Title);
oks.setTitleUrl(mapUrl);
Log.d(TAG, Content + " (来自@我爱我车,点击下载http://dl.wisegps.cn/ )");
oks.setText(Content + " (来自@我爱我车,点击下载http://dl.wisegps.cn/ )");
oks.setImagePath(imagePath);
//oks.setImageUrl("http://img.appgo.cn/imgs/sharesdk/content/2013/07/25/1374723172663.jpg");
oks.setUrl("http://www.sharesdk.cn");
oks.setFilePath(imagePath);
//oks.setComment("share");
//oks.setSite("wise");
//oks.setSiteUrl("http://sharesdk.cn");
//oks.setVenueName("Share SDK");
//oks.setVenueDescription("This is a beautiful place!");
//oks.setLatitude(Lat);
//oks.setLongitude(Lon);
oks.setSilent(true);
oks.show(mContext);
}
//转换时区
public static String transform(String from){
String to = "";
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//本地时区
Calendar nowCal = Calendar.getInstance();
TimeZone localZone = nowCal.getTimeZone();
//设定SDF的时区为本地
simple.setTimeZone(localZone);
SimpleDateFormat simple1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设置 DateFormat的时间区域为GMT
simple1.setTimeZone(TimeZone.getTimeZone("GMT"));
//把字符串转化为Date对象,然后格式化输出这个Date
Date fromDate = new Date();
try {
//时间string解析成GMT时间
fromDate = simple1.parse(from);
//GMT时间转成当前时区的时间
to = simple.format(fromDate);
} catch (ParseException e1) {
e1.printStackTrace();
}
return to;
}
}