1

私はインターネット接続を確認し、それに応じてデータを表示していました。それがインターネットに接続されている場合、私はサーバーからデータをロードするために使用され、インターネットに接続されていない場合、私はオフラインのデータをロードすることがありました。しかし、Android Studio 2.2.1から、これは動作していないようです。私が使用したコードは以下のとおりであった:Android Studio 2.2.1ではAndroid接続検出が機能しません。何がうまくいかなかったのですか?

import android.app.Service; 
import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 

public class ConnectionDetector { 

Context context; 

public ConnectionDetector(Context context) { 
    this.context = context; 
} 

    public boolean isConnected(){ 
    ConnectivityManager connectivity = (ConnectivityManager)  context.getSystemService(Service.CONNECTIVITY_SERVICE); 

    if(connectivity!=null){ 
     NetworkInfo info = connectivity.getActiveNetworkInfo(); 

     if(info!=null){ 
      if(info.getState()== NetworkInfo.State.CONNECTED){ 
       return true; 
      } 
     } 

    } 
    return false; 
} 

私は、このクラスの新しいオブジェクトを作成します:

cd = new ConnectionDetector(this); 

してから使用してください。

if(cd.isConnected()){ 
    ----------- 
    --------- 
    }else { 
    ------ 
    --- 
    } 

しかし、これは2.2.1 に動作していないが2.2.1で動作させるためには、どのような変更が必要ですか? 私はプログラミングの専門家ではありません。

+0

あなたがマニフェストファイルにアクセス権を追加している願っています。 – Akshay

+0

はい、マニフェストが追加されました。私は2.2.1のバージョンで何かを考えています。今Android Studioは2.2.2の新しいアップデートを提供しました。私は彼らが今それを修正すると思う。 –

答えて

3

デバイスが接続されているかどうかに応じて使用してください。

public class ConnectivityDetector { 
    public static boolean isConnectingToInternet(Context context) { 
     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; 
    }} 

あなたはこのようにそれを確認することができます:

if (ConnectivityDetector.isConnectingToInternet(ChangePasswordActivity.this)) { 
       //Your Code when connected. 
      } else { 
       Toast.makeText(MainActivity.this, "Please check your Internet connection.", Toast.LENGTH_SHORT).show(); 
      } 
+0

私はチェックして、それは私のために働いています。 –

+0

ありがとうございます。あなたのコードは素晴らしいです。 –

+0

ウェルカム。 @A B S –

関連する問題