zoukankan      html  css  js  c++  java
  • Android笔记之BroadCast判断网络状况

    1、添加权限:

     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    2、判断网络是否可用:

        private ConnectivityManager manager;
    
        private BroadcastReceiver receiver = new BroadcastReceiver() {
    
            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                // 通知用户网络连接变化
                NetworkInfo networkinfo = manager.getActiveNetworkInfo();  
                
                   if (networkinfo == null || !networkinfo.isAvailable()) {  
                      Log.i("receive", "网络不可用");
                   }  
                Log.i("MainActivity", "receive");
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    manager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); } // 注册广播 @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); IntentFilter filter=new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(receiver, filter); } // 卸载广播 @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); if(receiver!=null){ unregisterReceiver(receiver); } }

     3、更详细的网络信息

    private BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                // 提醒用户网络状况有异常
                // 分别获得2G和3G、wifi的网络状况
                //提醒用户的两种方式:吐司、通知
                NetworkInfo mobileInfo = manager
                        .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                NetworkInfo wifiInfo = manager
                        .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                if (!mobileInfo.isConnected() || !wifiInfo.isConnected()) {
                     Notification.Builder builder = new Notification.Builder(MainActivity.this);
                     builder.setContentText("提示信息");
                     builder.setContentText("网络状况有异常");
                     builder.setSmallIcon(R.drawable.ic_launcher);
                     notificationManager.notify(1001,builder.build());
                }
            }
        };

    Done!

  • 相关阅读:
    Django:同一个app支持多个数据库
    Django部署以及整合celery
    软件破解码等
    操作日志的设计小结by大熊
    用户-权限-组织-三员分立
    mysql调优
    笔试面试中常见的位运算用法
    Ubuntu系统下搭建Java平台
    All about Oracle Character Set
    各位技术大牛们的逆袭集锦!屌丝们都看过来!
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3427004.html
Copyright © 2011-2022 走看看