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!

  • 相关阅读:
    20191317王鹏宇第四章学习笔记
    20191317王鹏宇2.3.1测试
    树莓派openeuler安装openssl及其实践
    树莓派实验指导第三章实验
    树莓派openeuler的安装以及ukui桌面的安装并安装远程桌面vnc
    20191317王鹏宇鲲鹏服务器测试
    反汇编测试
    信息安全系统设计与实现第八周:《Unix/Linux系统编程》第五章学习笔记
    团队作业三
    信息安全系统设计与实现第七周:《Unix/Linux系统编程》第四章学习笔记
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3427004.html
Copyright © 2011-2022 走看看