Страница 1 из 2

Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 18 июл 2018, 15:13
kirya_355
всем привет, я создал скрипт ,который показывает рекламу при нажатии, вроде работает , но хотелось бы , чтобы при выключенном интернете выдавал ошибку
вот скрипт
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.SceneManagement;
public class UnityAds : MonoBehaviour
{
  public GameObject banner, banner1;//нужно ,чтобы баннер появлялся когда выключен интернет
  private bool ads;

  void Start ()
  {

    if (Advertisement.isSupported)
    {
      ads = true;
      Advertisement.Initialize ("2578372", false);
    }
    else
      ads = false;

  }

  void OnMouseUpAsButton ()
  {
    if (ads == true)
      ShowRewardedAd ();
    if (ads == false)
      Instantiate (banner1, new Vector2 (0, 0), Quaternion.identity);//баннер , который пишет , что устройство не поддерживает рекламу
  }

  public void ShowRewardedAd ()
  {
    if (Advertisement.IsReady ("rewardedVideo"))
    {
      var options = new ShowOptions { resultCallback = HandleShowResult };
      Advertisement.Show ("rewardedVideo", options);
    }

  }

  private void HandleShowResult (ShowResult result)
  {
    switch (result)
    {
      case ShowResult.Finished:

        if (SceneManager.GetActiveScene ().name == "shop")//в магазине при просмотре рекламы дает очки
        {
          int i = PlayerPrefs.GetInt ("allscore");
          PlayerPrefs.SetInt ("allscore", i + 50);

        }

        break;
      case ShowResult.Skipped:

        break;
      case ShowResult.Failed:

        break;
    }
  }
}
 


Как проверить наличие интернет соединения ? В интернете искал не нашёл рабочего скрипта .

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 18 июл 2018, 20:26
kirya_355
Что-то нашёл
if(Application.internetReachability == NetworkReachability.NotReachable)

if(Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)

if(Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 18 июл 2018, 20:29
kirya_355

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 18 июл 2018, 20:30
kirya_355
классно я сам себе помог)))))

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 18 июл 2018, 21:24
Tolking
Только имей ввиду если Application.internetReachability != NetworkReachability.NotReachable - это не значит что есть интернет...

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 01:07
kirya_355
Tolking писал(а):Только имей ввиду если Application.internetReachability != NetworkReachability.NotReachable - это не значит что есть интернет...

Я кстати думал об этом , ведь там ещё есть локальная сеть , поэтому нужно прописывать 2 вариант , а не просто отрицание 1

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 01:08
kirya_355
Интересно как 2 вариант реагирует на wi-fi с интернетом

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 01:09
kirya_355
kirya_355 писал(а):Что-то нашёл
if(Application.internetReachability == NetworkReachability.NotReachable)

if(Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)

if(Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)

Я про эти варианты

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 12:29
seaman
https://issuetracker.unity3d.com/issues ... -in-builds
У меня в билде тоже не работает, как ожидалось...

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 13:08
Tolking
Не! Там все норм. Работает как описано. Если у тебя включен WiFi то устройство может добраться до интернета через лан, если включена мобильная передача данных, то можешь через него достигнуть инет... Если у тебя роутер не подключен к инету, или услуга на сим не оплачена, то это проверять никто не обещал... :)

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 14:45
kirya_355
Tolking писал(а):Не! Там все норм. Работает как описано. Если у тебя включен WiFi то устройство может добраться до интернета через лан, если включена мобильная передача данных, то можешь через него достигнуть инет... Если у тебя роутер не подключен к инету, или услуга на сим не оплачена, то это проверять никто не обещал... :)

то есть если есть wi-fi а на нем не оплачен инет , то функция все равно скажет что инет есть? и наоборот , если есть мобильный интернет , но он не оплачен то функция скажет , что интернет есть?

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 15:02
1max1
Может просто отправить запрос на гугл и если ответа не дождешься, то значит нету подключения.

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 15:10
Tolking
Функция скажет, то что должна - что интернет достижим...

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 15:34
seaman
Не! Там все норм. Работает как описано.

Простейший проект:
https://yadi.sk/d/GLuQ-qw73ZM9a2
Простейший скрипт:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestInet : MonoBehaviour {
        private Renderer rend;
       
        void Start () {
                rend = GetComponent<Renderer>();
        }
       
        void Update () {
                if(Application.internetReachability == NetworkReachability.NotReachable)
                        rend.material.color = Color.red;
                else
                        rend.material.color = Color.green;
        }
}


Рядом запускаю билд на ПС и редактор. Выключаю/включаю сеть. В редакторе цвет меняется, в билде нет
Да, забыл сказать. На ПС сеть одна, wi-fi нет.

Re: Как проверить наличие интернет соединения ?(Android)

СообщениеДобавлено: 19 июл 2018, 15:36
seaman
Может просто отправить запрос на гугл и если ответа не дождешься, то значит нету подключения.

Гугл дает большой файл. Я беру со своего сервера файлик в 5 байт. Так сеть и проверяю.