网络状态发生变化的时候,系统会发出 android.net.conn.CONNECTIVITY_CHANGE .
下面是实现的 demo : 复制代码
package mark.zhang;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.IBinder;import android.util.Log;public class ListenNetStateService extends Service {    private ConnectivityManager connectivityManager;    private NetworkInfo info;    private BroadcastReceiver mReceiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            String action = intent.getAction();            if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {                Log.d("mark", "网络状态已经改变");                connectivityManager = (ConnectivityManager)                                               getSystemService(Context.CONNECTIVITY_SERVICE);                info = connectivityManager.getActiveNetworkInfo();                  if(info != null && info.isAvailable()) {                    String name = info.getTypeName();                    Log.d("mark", "当前网络名称:" + name);                } else {                    Log.d("mark", "没有可用网络");                }            }        }    };    @Override    public IBinder onBind(Intent intent) {        return null;    }    @Override    public void onCreate() {        super.onCreate();        IntentFilter mFilter = new IntentFilter();        mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        registerReceiver(mReceiver, mFilter);    }    @Override    public void onDestroy() {        super.onDestroy();        unregisterReceiver(mReceiver);    }    @Override    public int onStartCommand(Intent intent, int flags, int startId) {        return super.onStartCommand(intent, flags, startId);    }}
复制代码
在 manifest 文件中需要加上一条权限:
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
回头再看看关于 CONNECTIVITY_ACTION 的介绍,从 api 中,我们还可以得到一个信息:通过 intent 可以获取一些 EXTRA,如 EXTRA_NO_CONNECTIVITY。boolean b = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);更多信息可以参考 ConnectivityManager.===========================================在Android操作系统中,如何能够正确的判断我们所连接的网络是否断开恩?今天我们就针对这一应用技巧进行一个详细的分析。
复制代码
public class ConnectionChangeReceiver extends BroadcastReceiver {           @Override           public void onReceive( Context context, Intent intent ) {               ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);               NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();               NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);               if ( activeNetInfo != null ) {                   Toast.makeText( context, "Active Network Type : " +                      activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();                   }               if( mobNetInfo != null ) {                   Toast.makeText( context, "Mobile Network Type : " +                      mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();                   }             }       }  
复制代码
            复制代码        
< !-- Needed to check when the network connection changes -->     < uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>     < receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver"                android:label="NetworkConnection">         < intent-filter>             < action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>         < /intent-filter>     < /receiver>
复制代码

更多相关文章

  1. [Android]判断网络连接是否可用
  2. 编写android拨打电话apk应用实例代码
  3. android 用代码编写linearlayout布局
  4. android延迟进入主界面和点击按钮进入主界面代码
  5. Android动态显示和隐藏状态栏探究。
  6. Android使用webview让服务器上的js调用java代码的方法
  7. Android网络抓包

随机推荐

  1. Android小机器人
  2. 生产实习(Android)四
  3. Android开发之自动提示框—AutoCompleteT
  4. Android国际化和布局
  5. Android(安卓)修改包名
  6. Android 面试会问到的面试题(持续更新中)
  7. [Android进阶]Android 开发最佳实践
  8. Android事件1-开发指南-用户界面-事件处
  9. android 渠道包自动化测试流程图
  10. 从原生APK反编译,拿到界面,用于mono for