b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Android实时监视(监视)网络连接状态更改

电脑杂谈  发布时间:2020-08-12 06:09:01  来源:网络整理

c 网络连接_程序当前无法识别连接描述符中请求的服务_oracle登录无连接


现在,Android手机作为市场占有量最大的移动设备,拥有着无数的需要连接网络的App,同时人们也渐渐不能离开需要网络的生活,相信大家都知道,在一些IMApp,类似于QQ,Wechat等通信工具中,并不需要很大的网络流量,普通的GPRS数据流量就可以应付自如。但是,当需要收看视频或者下载大型软件游戏的时候,在Wi-Fi连接下会有比较好的体验。作为开发者,在开发对网络连接非常敏感的App时,我们就需要对当前的网络做一定的判定和处理了。


下面就引出我们今天需要介绍的主角——ConnectivityManager

一、判断用户是否连接到网络

使用ConnectivityManager 可以判断是否有网络连接,代码如下:

ConnectivityManager cm= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info=cm.getActiveNetworkInfo();
boolean isConnected=info.isConnected();

代码非常简单,我相信每个人都可以一目了然.

二,确定网络连接的类型

oracle登录无连接_程序当前无法识别连接描述符中请求的服务_c 网络连接

网络连接类型很多,这是对当前连接是否为WiFi的判断.

boolean isWifi=info.getType()==ConnectivityManager.TYPE_WIFI;

还有许多其他判断,例如蓝牙,GRPS等. 其他类型如下:

c 网络连接_程序当前无法识别连接描述符中请求的服务_oracle登录无连接

三,监控网络连接变化

对于移动设备,网络类型和状态变化非常频繁,因此有必要监视网络状态和连接. Android系统使用广播方法来监视网络连接的变化.

程序当前无法识别连接描述符中请求的服务_oracle登录无连接_c 网络连接

每当网络连接状态更改时,ConnectivityManager都会广播CONNECTIVITY_ACTION(“. conn.CONNECTIVITY_CHANGE”). 您可以在清单文件中注册广播,以接收网络连接更改的广播.

以下使用示例介绍如何根据广播消息确定网络连接. 代码如下:

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.widget.Toast;

/**
 * Created by 宫智耀 on 2016/10/14.
 */
public class ConnectionChangeReceiver extends BroadcastReceiver {
    private static final String TAG = ConnectionChangeReceiver.class.getSimpleName();

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG, "网络状态改变");
        boolean success = false;
        //获得网络连接服务
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
        //获取wifi连接状态
        NetworkInfo.State state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
        //判断是否正在使用wifi网络
        if (state == NetworkInfo.State.CONNECTED) {
            success = true;
        }
        //获取GPRS状态
        state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
        //判断是否在使用GPRS网络
        if (state == NetworkInfo.State.CONNECTED) {
            success = true;
        }
        //如果没有连接成功
        if(!success){
            Toast.makeText(context,"当前网络无连接",Toast.LENGTH_SHORT).show();   
        }
    }
}

c 网络连接_oracle登录无连接_程序当前无法识别连接描述符中请求的服务

在清单文件中:


android:name="android.permission.ACCESS_NETWORK_STATE"/>
android:name="android.permission.INTERNET"/>
                    ...
                    ...

android:name=".ConnectionChangeReceiver">
    
        android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
    

除了上述在清单文件中进行注册的方法外,还可以实现动态注册和取消.

您可以在Activity的onCreate()中注册监视程序,并在onDestroy()中取消监视程序.

或者在应用程序启动时启动服务,在Service的onCreate()方法中注册网络监视器,并在应用程序退出时关闭服务,并在Service的OnDestroy()中取消监视.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-297203-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...