using System; using Android.Content; using Android.OS; using Shared; namespace SharedMethod { public static class SharedMethod { public static bool IsBackground; //public static UIApplication sharedApp; public static void ChangeSkin () { //if (UserConfig.Instance.SkinCode == 0) { // sharedApp.StatusBarStyle = UIStatusBarStyle.LightContent; // Shared.Application.Skin = UserConfig.Instance.CurrentSkinName; //} else if (UserConfig.Instance.SkinCode == 1) { // sharedApp.StatusBarStyle = UIStatusBarStyle.Default; // Shared.Application.Skin = UserConfig.Instance.CurrentSkinName; //} } /// <summary> /// c#,.net 下载文件 /// </summary> public static void DownloadFile (Action<string> action) { float percent = 0; try { #if wallon System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create ("http://intercom.hdlcontrol.com/AppDownload/apk/teston.apk"); #else System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create ("http://intercom.hdlcontrol.com/AppDownload/apk/hdlon.apk"); #endif System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse (); long totalBytes = myrp.ContentLength; System.IO.Stream st = myrp.GetResponseStream (); System.IO.Stream so = new System.IO.FileStream (new Java.IO.File (Android.OS.Environment.GetExternalStoragePublicDirectory (Android.OS.Environment.DirectoryDownloads), "on.apk").Path, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite); long totalDownloadedByte = 0; byte [] by = new byte [1024]; int osize = st.Read (by, 0, (int)by.Length); while (osize > 0) { totalDownloadedByte = osize + totalDownloadedByte; so.Write (by, 0, osize); osize = st.Read (by, 0, (int)by.Length); percent = (float)totalDownloadedByte / (float)totalBytes * 100; System.Console.WriteLine (percent); action (((int)percent).ToString ()); } so.Close (); st.Close (); install (Shared.Application.Activity); } catch (System.Exception ex) { System.Console.WriteLine (ex.Message); } } static void install (Context context) { var file = new Java.IO.File (Android.OS.Environment.GetExternalStoragePublicDirectory (Android.OS.Environment.DirectoryDownloads), "on.apk"); var intent = new Intent (Intent.ActionView); // 由于没有在Activity环境下å¯åЍActivity,设置下é¢çš„æ ‡ç¾ intent.SetFlags (ActivityFlags.NewTask); if (BuildVersionCodes.M < Android.OS.Build.VERSION.SdkInt) { //傿•°1 上下文, 傿•°2 Providerä¸»æœºåœ°å€ å’Œé…置文件ä¸ä¿æŒä¸€è‡´ 傿•°3 共享的文件 var apkUri = Android.Support.V4.Content.FileProvider.GetUriForFile (context, "com.hdl.in.fileProvider", file); //æ·»åŠ è¿™ä¸€å¥è¡¨ç¤ºå¯¹ç›®æ ‡åº”用临时授æƒè¯¥Uri所代表的文件 intent.AddFlags (ActivityFlags.GrantReadUriPermission); intent.SetDataAndType (apkUri, "application/vnd.android.package-archive"); } else { intent.SetDataAndType (Android.Net.Uri.FromFile (file), "application/vnd.android.package-archive"); } context.StartActivity (intent); } public static PageLayout CurPageLayout = null; } }