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;
//}
}
///
/// c#,.net 下载文件
///
public static void DownloadFile (Action 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;
}
}