標籤:android style blog class code java
首先添加以下許可權
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
new一個廣播NetStateChangeBroadcast
package aviationboss.broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;import android.util.Log;import android.widget.Toast;import aviationboss.data.SystemData;public class NetStateChangeBroadcast extends BroadcastReceiver { private ConnectivityManager connectivity; private boolean isConnect = false; @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub connectivity = (ConnectivityManager) arg0 .getSystemService(arg0.CONNECTIVITY_SERVICE); State wifiState = connectivity.getNetworkInfo( ConnectivityManager.TYPE_WIFI).getState(); if (State.CONNECTED == wifiState) { isConnect = true; } if(connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)!=null){ State mobileState = connectivity.getNetworkInfo( ConnectivityManager.TYPE_MOBILE).getState(); if (State.CONNECTED == mobileState) { isConnect = true; } } Intent intent = new Intent(); intent.setAction("netConnect"); if (isConnect) { if (!SystemData.NetState) { Toast.makeText(arg0, "網路已串連", Toast.LENGTH_SHORT).show(); SystemData.NetState = true; intent.putExtra("netActions", "網路已串連"); arg0.sendBroadcast(intent); } } else { if (SystemData.NetState) { Toast.makeText(arg0, "網路已斷開", Toast.LENGTH_SHORT).show(); SystemData.NetState = false; intent.putExtra("netActions", "網路已斷開"); arg0.sendBroadcast(intent); } } }}
判斷wifi的串連狀態
connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState()
判斷移動網的串連狀態
connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()
在設定檔中添加該廣播,並設定監聽的動作
<receiver android:name="aviationboss.broadcast.NetStateChangeBroadcast" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter></receiver>