2012-03-28 14 views
0

私はいくつかのURLを使用してビデオをストリーミングしています。ここで、私はアプリケーションを起動したとき、私はネットワークの状態を確認した、またはonResume状態になったとき、私はネットワークの状態をチェックしました。しかし、ストリーミング再生中に、何らかの原因でネットワークが失敗する場合はどうすればよいですか?ネットワークの状態を確認するにはどうすればいいですか? は、ここで私はOnCreate関数とorResume方法から...アンドロイドでアプリを実行中にネットワークステータスを確認します

public static boolean isOnline(Context context) { 
    boolean state = false; 
    ConnectivityManager cm = (ConnectivityManager) 
    context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    NetworkInfo wifiNetwork = 
     cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
     if (wifiNetwork != null) { 
       state=wifiNetwork.isConnectedOrConnecting(); 
      } 

     NetworkInfo mobileNetwork = 
     cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
     if (mobileNetwork != null) { 
      state=mobileNetwork.isConnectedOrConnecting(); 
     } 

     NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
     if (activeNetwork != null) { 
      state=activeNetwork.isConnectedOrConnecting(); 
     } 

     return state; 
    } 

を状態を確認のために、このコードを使用しています、私は、このメソッドを呼び出していました..しかし、アプリケーションを実行しながら、どのように私は、ネットワークの状態を見つけることができます。

事前に感謝しますが...

答えて

3

あなたは、接続の変更放送を受信すること、あなたのActivityBroadcastReceiverを登録することができます。だからあなたの接続性の変化があるだろうと、あなたが行動を取る必要がありますトリガされますonReceive()方法、内側:

BroadcastReceiver mNetworkReceiver=new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      //take actions 
     } 
    }; 
    registerReceiver(mNetworkReceiver, 
     new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")); 

また、あなたのマニフェストに次の権限を追加する必要があります。

<uses-permission 
    android:name="android.permission.ACCESS_NETWORK_STATE" /> 
関連する問題