android 网络状况
来源:互联网 发布:天天时时彩计划软件 编辑:程序博客网 时间:2024/05/16 07:19
描述了当前网络 Mobile和Wifi的状态。
有2个内部类 NetworkInfo.DetailedState(精确的网络状态)和 NetworInfo.State(粗略的网路状态)
Detailed state
Coarse-grained state
IDLE
DISCONNECTED
SCANNING
CONNECTING
CONNECTING
CONNECTING
AUTHENTICATING
CONNECTING
CONNECTED
DISCONNECTING
DISCONNECTING
DISCONNECTED
DISCONNECTED
UNAVAILABLE
DISCONNECTED
FAILED
DISCONNECTED
里面几个常用函数
isAvailable() isConnected() getDetailedState() getState() getExtrInfo()
getType() 获取当前网络的类型mobile or Wi-Fi
getTypeName() 获取当前网络的类型名 “WIFI” or “MOBILE”
ConnectivityManager
用于查询网络连接状态,当网络状态发生改变时通知应用。通过调用Context.getSystemService(Context.CONNECTIVITY_SERVICE)。主要功能:
1. 监视网络(Wi-Fi,GPRS,UMTS,etc)的连接
2. 网络状态发生改变时发送广播
3. 网络丢失时尝试转移的别的网络
4. 提供API
主要函数介绍
1. NetworkInfo getActiveNetworkInfo() 获取可用网络
2. NetworkInfo[] getAllNetworkInfo 获取所有可用网络
3. NetworkInfo getNetworkInfo(int networkType) 获取固定网络信息
4. isNetworkTypeValid(int networkType)
Android判断当前网络状态是否连接函数
- Public static Boolean isNetworkConnected(Context context) {
- ConnectivityManager manager = (ConnectivityManager) context
- .getApplicationContext().getSystemService(
- Context.CONNECTIVITY_SERVICE);
- if (manager == null) {
- return false;
- }
- NetworkInfo networkinfo = manager.getActiveNetworkInfo();
- if (networkinfo == null || !networkinfo.isAvailable()) {
- return false;
- }
- return true;
- }
- //粗略的网络状况检查以及进入设置页面
- //Check network
- public void CheckNetworkState()
- {
- boolean flag = false;
- ConnectivityManager manager = (ConnectivityManager)getSystemService(
- Context.CONNECTIVITY_SERVICE);
- State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
- State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
- //如果3G、wifi、2G等网络状态是连接的,则退出,否则显示提示信息进入网络设置界面
- if(mobile == State.CONNECTED||mobile==State.CONNECTING)
- return;
- if(wifi == State.CONNECTED||wifi==State.CONNECTING)
- return;
- showTips();
- }
-
- private void showTips()
- {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setIcon(android.R.drawable.ic_dialog_alert);
- builder.setTitle(R.string.netstate);
- builder.setMessage(R.string.setnetwork);
- builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // 如果没有网络连接,则进入网络设置界面
- startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
- }
- });
- builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.cancel();
- }
- });
- builder.create();
- builder.show();
- }
- //Check network
- android 网络状况
- android 检测网络状况
- Android网络状况查询
- Android检测网络状况
- Android判断网络状况
- Android项目之网络状况
- Android判断网络状况和设置网络
- android-------------------NetWorkInfo(判断网络状况的类)
- android中判断手机网络状况
- android 通过广播监听网络连接状况
- Android中检测网络连接状况的方法
- Android关于网络连通状况的系统广播
- Unity&Android之二:获取手机电量信息、网络状况
- 判断当前网络状况
- 检查网络连接状况
- linux模拟网络状况
- iOS判断网络状况
- 检查网络状况
- Java Image CMYK2RGB
- 小数变为二进制方法(转)
- java excel api 讲解
- 正则表达式贪婪模式
- java第十三次课后笔记
- android 网络状况
- 一步一步学android之控件篇——ScrollView
- adb 启动应用
- Java读取一个xml文件并生成相应的类
- Oracle数据库impdb和expdb操作
- AR6000 RF calibration
- git config
- Android开发 实现按钮按下后并保持住按下的效果
- 创建型模式-----单例模式(Singleton)