2014-11-03 4 views
-1

Я разрабатываю игровое приложение, которое требует, чтобы пользователи находились на хорошем Wi-Fi-соединении. И мне также нужно, чтобы оба пользователя знали, есть ли другой пользователь на Wi-Fi или нет. Платформа Android будет использоваться для разработки этого игрового приложения.Проверьте, подключен ли пользователь к WIFi на Android

+0

Возможный дубликат [Определить тип сетевого подключения на Android] (http: // stackoverflow. com/questions/2802472/detect-network-connection-type-on-android) –

ответ

0

Просто создайте следующий класс, который проверяет наличие подключения к Интернету:

public class ConnectionStatus { 

    private Context _context; 

    public ConnectionStatus(Context context) { 
     this._context = context; 
    } 

    public boolean isConnectionAvailable() { 
     ConnectivityManager connectivity = (ConnectivityManager) _context 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (connectivity != null) { 
      NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
      if (info != null) 
       for (int i = 0; i < info.length; i++) 
        if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
         return true; 
        } 
     } 
     return false; 
    } 
} 

Этот класс просто содержит метод, который возвращает логическое значение состояния соединения. Поэтому в простых терминах, если метод находит действительное соединение с Интернетом, возвращаемое значение равно true, в противном случае false, если действительное соединение не найдено.

Следующий метод в MainActivity затем вызывает результат с методом, описанным выше, и предлагает пользователю действовать соответствующим образом:

public void addListenerOnWifiButton() { 
     Button btnWifi = (Button)findViewById(R.id.btnWifi); 

     iia = new ConnectionStatus(getApplicationContext()); 

     isConnected = iia.isConnectionAvailable(); 
     if (!isConnected) { 
      btnWifi.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
        Toast.makeText(getBaseContext(), "Please connect to a hotspot", 
          Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 
     else { 
      btnWifi.setVisibility(4); 
      warning.setText("This app may use your mobile data to update events and get their details."); 
     } 
    } 

В приведенном выше коде, если результат является ложным, (поэтому существует нет подключения к Интернету, пользователь отправляется на панель Wi-Fi для Android, где ему предлагается подключиться к Wi-Fi-точке доступа.

+0

«И мне также нужно, чтобы оба пользователя знали, включен ли другой пользователь Wi-Fi или нет ". Как один пользователь знает, если другой находится на Wi-Fi или нет? – Deepu

+0

Не уверен, что вы можете получить это легко. Прошел через некоторые сообщения на SO, которые могли бы вам помочь: http://stackoverflow.com/a/7599847/1116216. Но это дает вам только SSID (имя сети Wifi) для сети, к которой подключено ваше устройство, а не того, с кем вы ориентируетесь. –

+0

помог вам помочь? –

Смежные вопросы