標籤:android style blog color io 使用 strong 檔案 2014
第一步:接收狀態資訊
(1、寫setActivity方法是為了獲得介面的控制項設定是否隱藏
2、此類繼承BroadcastReceiver,作用是重新廣播接收者)
import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.util.Log;import android.view.View;import android.widget.TextView;import android.widget.Toast;/** * Created by Administrator on 2014/9/2. */public class ConnectionChangeReceiver extends BroadcastReceiver { public Activity activity; @Override public void onReceive(Context context, Intent intent) { boolean success = false; ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE);//擷取狀態物件 NetworkInfo.State state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); // 判斷是否正在使用WIFI網路 if (NetworkInfo.State.CONNECTED == state) { TextView view = (TextView) activity.findViewById(R.id.network); view.setVisibility(View.GONE); Log.e("-------wifi-----", "串連"); success = true; } // 擷取GPRS網路連接狀態 state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); // 判斷是否正在使用GPRS網路 if (NetworkInfo.State.CONNECTED == state) { TextView view = (TextView) activity.findViewById(R.id.network); view.setVisibility(View.GONE); Log.e("-------GPRS-----", "串連"); success = true; } if (!success) { Log.e("-------net-----", "無串連"); TextView view = (TextView) activity.findViewById(R.id.network); view.setVisibility(View.VISIBLE); Toast.makeText(context, "網路狀態改變", Toast.LENGTH_LONG).show(); } } public void setActivity(Activity activity) { this.activity = activity; }}
第二步:建立對象,啟動廣播接收者:
ConnectionChangeReceiver receiver = new ConnectionChangeReceiver(this);this.registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
第三步:在manifest中加上許可權:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
作用是為了重新類ConnectionChangeReceiver中
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE);
能夠擷取對象。
第四步:布局檔案
初始化顯示無網路連接提醒時,預設為不可見狀態,即Visibility為gone
第五步:方法的重用:
在廣播接收者中加上一個改變activity的方法即可,而且不要帶有建構函式,否者報錯,見
第一步源碼。
android之網路狀態的判斷