using System;
|
using System.Text;
|
using Shared.SimpleControl;
|
using Shared.SimpleControl.Phone;
|
|
namespace Shared
|
{
|
public class Utlis
|
{
|
|
///// <summary>
|
///// 将int数值转换为占四个字节的byte数组
|
///// </summary>
|
///// <param name="value"></param>
|
///// <returns></returns>
|
//public static byte [] IntToByteArray (int i)
|
//{
|
// byte [] result = new byte [4];
|
// // 由高位到低位
|
// result [0] = (byte)((i >> 24) & 0xFF);
|
// result [1] = (byte)((i >> 16) & 0xFF);
|
// result [2] = (byte)((i >> 8) & 0xFF);
|
// result [3] = (byte)(i & 0xFF);
|
// return result;
|
//}
|
|
///// <summary>
|
///// byte[]转int
|
///// </summary>
|
///// <param name="bytes"></param>
|
///// <returns></returns>
|
//public static int ByteArrayToInt (byte [] bytes)
|
//{
|
// int value = 0;
|
// // 由高位到低位
|
// for (int i = 0; i < 4; i++) {
|
// int shift = (4 - 1 - i) * 8;
|
// value += (bytes [i] & 0x000000FF) << shift;// 往高位游
|
// }
|
// return value;
|
//}
|
|
/// <summary>
|
/// 全局打印
|
/// </summary>
|
public static void WriteLine (object mes)
|
{
|
#if DEBUG
|
System.Console.WriteLine (mes);
|
#endif
|
}
|
|
public static int StringToInt (string mStr) {
|
try {
|
return int.Parse (mStr);
|
} catch {
|
return 0;
|
}
|
}
|
|
public static void ShowAppLinkStatus (AppLinkStatus mStatus) {
|
|
switch (mStatus) {
|
case AppLinkStatus.CloudLink:
|
MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png";
|
break;
|
case AppLinkStatus.CloudUnlink:
|
MainPage.WiFiStatus = "CrabtreeAdd/CloudUnlink.png";
|
break;
|
case AppLinkStatus.CloudOffline:
|
MainPage.WiFiStatus = "CrabtreeAdd/CloudOffline.png";
|
break;
|
case AppLinkStatus.WiFi:
|
MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png";
|
break;
|
case AppLinkStatus.WiFiUnlink:
|
MainPage.WiFiStatus = "CrabtreeAdd/WiFiUnlink.png";
|
break;
|
case AppLinkStatus.WiFiOffline:
|
MainPage.WiFiStatus = "CrabtreeAdd/WiFiOffline.png";
|
break;
|
default:
|
|
|
break;
|
}
|
|
Shared.Application.RunOnMainThread (() => {
|
UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
|
});
|
|
}
|
|
/// <summary>
|
/// 获取请求提交的语言参数
|
/// </summary>
|
public static string GetPostLanguageType ()
|
{
|
//L1APP默认英语
|
return LanguageTypeEnum.ENGLISH.ToString ();
|
//return Language.CurrentLanguage == "Chinese" ? LanguageTypeEnum.CHINESE.ToString () : LanguageTypeEnum.ENGLISH.ToString ();
|
}
|
|
/// <summary>
|
/// 弹窗提示
|
/// </summary>
|
/// <param name="mes"></param>
|
public static void ShowAlertOnMainThread (string mes)
|
{
|
Application.RunOnMainThread (() => {
|
new Alert ("", mes, Language.StringByID (SimpleControl.R.MyInternationalizationString.Close)).Show ();
|
});
|
}
|
|
/// <summary>
|
/// ShowTip
|
/// </summary>
|
/// <param name="mes"></param>
|
/// <param name="closeTime">关闭时间</param>
|
public static void ShowTip (string mes, int closeTime = 2)
|
{
|
if (MainPage.MainFrameLayout == null) return;
|
|
var tip = new Tip () {
|
Text = mes,
|
CloseTime = closeTime,
|
Direction = AMPopTipDirection.None,
|
MaxWidth = MainPage.MainFrameLayout.Width
|
};
|
tip.Show (MainPage.MainFrameLayout);
|
}
|
|
/// <summary>
|
/// 获取时间戳(ss)
|
/// </summary>
|
/// <param name="unixTimeStamp"></param>
|
/// <returns></returns>
|
public static DateTime UnixToDateTime (long unixTimeStamp)
|
{
|
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime (new DateTime (1970, 1, 1)); // 当地时区
|
return startTime.AddSeconds (unixTimeStamp);
|
}
|
|
/// <summary>
|
/// </summary>
|
/// <param name="unixTimeStamp"></param>
|
/// <returns></returns>
|
public static long DateTimeToUnix (DateTime dateTime)
|
{
|
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime (new DateTime (1970, 1, 1)); // 当地时区
|
return (long)(dateTime - startTime).TotalSeconds; // 相差秒数
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="unixTimeStamp"></param>
|
/// <returns></returns>
|
public static DateTime UnixToDateTimeMS (long unixTimeStamp)
|
{
|
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime (new DateTime (1970, 1, 1)); // 当地时区
|
return startTime.AddMilliseconds (unixTimeStamp);
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="unixTimeStamp"></param>
|
/// <param name="format"></param>
|
/// <returns></returns>
|
public static string UnixToDateTimeWithFormatMS (long unixTimeStamp, string format = "yyyy")
|
{
|
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime (new DateTime (1970, 1, 1)); // 当地时区
|
return startTime.AddMilliseconds (unixTimeStamp).ToString (format);
|
}
|
|
/// <summary>
|
/// 生成随机字符串
|
/// </summary>
|
/// <param name="length">字符串的长度</param>
|
/// <returns></returns>
|
public static string CreateRandomString (int length)
|
{
|
// 创建一个StringBuilder对象存储密码
|
StringBuilder sb = new StringBuilder ();
|
//使用for循环把单个字符填充进StringBuilder对象里面变成14位密码字符串
|
for (int i = 0; i < length; i++) {
|
Random random = new Random (Guid.NewGuid ().GetHashCode ());
|
//随机选择里面其中的一种字符生成
|
switch (random.Next (3)) {
|
case 0:
|
//调用生成生成随机数字的方法
|
sb.Append (createNum ());
|
break;
|
case 1:
|
//调用生成生成随机小写字母的方法
|
sb.Append (createSmallAbc ());
|
break;
|
case 2:
|
//调用生成生成随机大写字母的方法
|
sb.Append (createBigAbc ());
|
break;
|
}
|
}
|
return sb.ToString ();
|
}
|
|
/// <summary>
|
/// 生成单个随机数字
|
/// </summary>
|
static int createNum ()
|
{
|
Random random = new Random (Guid.NewGuid ().GetHashCode ());
|
int num = random.Next (10);
|
return num;
|
}
|
|
/// <summary>
|
/// 生成单个大写随机字母
|
/// </summary>
|
static string createBigAbc ()
|
{
|
//A-Z的 ASCII值为65-90
|
Random random = new Random (Guid.NewGuid ().GetHashCode ());
|
int num = random.Next (65, 91);
|
string abc = Convert.ToChar (num).ToString ();
|
return abc;
|
}
|
|
/// <summary>
|
/// 生成单个小写随机字母
|
/// </summary>
|
static string createSmallAbc ()
|
{
|
//a-z的 ASCII值为97-122
|
Random random = new Random (Guid.NewGuid ().GetHashCode ());
|
int num = random.Next (97, 123);
|
string abc = Convert.ToChar (num).ToString ();
|
return abc;
|
}
|
|
|
public static string MD5Encrypt (string mPassword)
|
{
|
var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider ();
|
return BitConverter.ToString (md5.ComputeHash (Encoding.UTF8.GetBytes (mPassword))).Replace ("-", "");
|
}
|
|
///// 字符串截取并拼接
|
///// </summary>
|
///// <param name="str"></param>
|
///// <returns></returns>
|
//public static string DelMacString (string str)
|
//{
|
// string restr = "";
|
// if (!string.IsNullOrEmpty (str)) {
|
// ArrayList array = GetSeparateSubString (str, 2);
|
|
// foreach (string arr in array) {
|
|
// restr += arr + ".";
|
|
// }
|
// }
|
|
// return restr.TrimEnd ('.');
|
//}
|
|
//static ArrayList GetSeparateSubString (string txtString, int charNumber) //charNumber为要截取的每段的长度
|
//{
|
// ArrayList arrlist = new ArrayList ();
|
// string tempStr = txtString;
|
// for (int i = 0; i < tempStr.Length; i += charNumber)//首先判断字符串的长度,循环截取,进去循环后首先判断字符串是否大于每段的长度
|
// {
|
// if ((tempStr.Length - i) > charNumber)//如果是,就截取
|
// {
|
// arrlist.Add (tempStr.Substring (i, charNumber));
|
// } else {
|
// arrlist.Add (tempStr.Substring (i));//如果不是,就截取最后剩下的那部分
|
// }
|
// }
|
// return arrlist;
|
//}
|
}
|
}
|