я в настоящее время имеющий один специальный случай использования, что я совсем запутался, как решить.Android - проверка, если соединение данных на самом деле работает
Мы проверяли для подключения к Интернету с ConnectivityService, который имеет те ConnectivityType.Wifi/ConnectivityType.Mobile со свойством, если он подключен /подключение. Это все хорошо, пока вы не столкнетесь с следующим случаем:
- У вас есть данные на телефоне.
- Соединение для передачи данных подключено.
- Однако вы не платите за счет данных, так что вы не можете делать какие-либо передачи данных.
- (убедитесь, что WiFi выключен при попытке это)
Я думал, что я бы просто проверить следующим образом:
private static bool CanReachServer()
{
var uri = new Uri(Platform.ApiServerUrl); // replace with https://www.google.com if you like
try
{
using (HttpClient httpClient = new HttpClient())
{
httpClient.Timeout = TimeSpan.FromMilliseconds(5000);
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uri);
var task = httpClient.SendAsync(httpRequestMessage);
task.Wait();
if (task.Result.IsSuccessStatusCode)
return true;
else
return false;
}
}
catch (Exception ex)
{
Util.Log(string.Format("{0} - {1}", ex.Message, ex.StackTrace));
return false;
}
}
Но это приходит с результатом успешного статуса 200 - что делает меня очень запутанным, поскольку я явно не могу получить доступ к каким-либо данным, ориентированным на мой телефон.
Вы должны проверить эту https://developer.xamarin.com/recipes/ios/network/reachability/detect_if_network_is_available/ и это https://developer.xamarin.com/recipes/android/networking/networkinfo/ detect_network_connection/ – Rohit5k2
@ Rohit5k2 спасибо, конечно, я видел это раньше, также первый относится к iOS, а не к Android :), и, как я уже говорил, я сделал материал ConnectivityService. –
Вторая ссылка для android – Rohit5k2