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!

  • 相关阅读:
    windows下面安装Python和pip教程
    Python已安装第三方库
    Python安装cx_Oracle第三方库(Mac osx Yosemite Intel i5环境)
    7.Python进阶_函数对象
    6.Python进阶_循环对象
    5.Python进阶_循环设计
    UltraEdit中粘贴问题
    UltraEdit的代码片的编码设置
    使用C#实现SSLSocket加密通讯 Https
    sql while 循环要加begin end
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3427004.html
Copyright © 2011-2022 走看看