Это, как я это сделал ...
class Internet
{
static DispatcherTimer dispatcherTimer;
public static bool Available = false;
public static async void StartChecking()
{
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(IsInternetAvailable1);
dispatcherTimer.Interval = new TimeSpan(0, 0, 10); //10 Secconds or Faster
await IsInternetAvailable(null, null);
dispatcherTimer.Start();
}
private static async void IsInternetAvailable1(object sender, EventArgs e)
{
await IsInternetAvailable(sender, e);
}
private static async Task IsInternetAvailable(object sender, EventArgs ev)
{
string url = "https://www.google.com/";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "text/plain; charset=utf-8";
httpWebRequest.Method = "POST";
using (var stream = await Task.Factory.FromAsync<Stream>(httpWebRequest.BeginGetRequestStream,
httpWebRequest.EndGetRequestStream, null))
{
string json = "{ \"302000001\" }"; //Post Anything
byte[] jsonAsBytes = Encoding.UTF8.GetBytes(json);
await stream.WriteAsync(jsonAsBytes, 0, jsonAsBytes.Length);
WebClient hc = new WebClient();
hc.DownloadStringCompleted += (s, e) =>
{
try
{
if (!string.IsNullOrEmpty(e.Result))
{
Available = true;
}
else
{
Available = false;
}
}
catch (Exception ex)
{
if (ex is TargetInvocationException)
{
Available = false;
}
}
};
hc.DownloadStringAsync(new Uri(url));
}
}
}
Поскольку Windows Phone 8 не имеет возможности проверить подключение к Интернету, вы должны сделать это, отправив запрос POST HTTP. Вы можете сделать это, отправив его на любой веб-сайт, который вы хотите. Я выбрал google.com. Затем проверьте каждые 10 секунд или менее, чтобы обновить состояние соединения.
http://stackoverflow.com/questions/13617017/windows-phone-8-connection-handler-internet-availability Может быть, эта ссылка может помочь вам. –
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface(v=vs.110).aspx есть доступный метод GetIsNetworkAvailable – thegiga
Вместо классического метода нет сети проверки (noto само соединение), я бы сделал веб-запрос и посмотрел ответное сообщение. – fillobotto