package cc.testnetworkchange;import android.os.Bundle;import android.app.Activity;/** * Demo描述: * 利用廣播監聽裝置網路連接的變化情況 * 亦可藉此監測到裝置是否已經斷開網路 */public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}}
package cc.testnetworkchange;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.NetworkInfo.State;public class NetWorkChangeBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (connectivityManager!=null) {NetworkInfo [] networkInfos=connectivityManager.getAllNetworkInfo();for (int i = 0; i < networkInfos.length; i++) {State state=networkInfos[i].getState();if (NetworkInfo.State.CONNECTED==state) {System.out.println("------------> Network is ok");return;}}}//沒有執行return,則說明當前無網路連接System.out.println("------------> Network is validate");intent.setClass(context, NetWorkErrorActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);}}
package cc.testnetworkchange;import android.os.Bundle;import android.app.Activity;public class NetWorkErrorActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.networkerror);}}