全栈工程师开发手册 (作者:栾鹏)
安卓教程全解

安卓网络连接情况全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点

网络连接情况的监听和网络数据使用情况的监听

  private void listen_net() {//注册用于监听后台数据使用情况变化的BroadcastReceiverregisterReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {Log.v("网络数据使用变化", "");}},new IntentFilter(ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED)   //触发监听的广播行为);//用于监听网络连接变化的BroadcastReceiverregisterReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {Log.v("网络连接变化", "网络状态已经改变"); netinfo();}},new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION) //触发监听的广播行为); }

获取当前网络信息

移动网络和wifi网络都是网络情况的一种情况

  public void netinfo() {//访问Connectivity Manager网络连接服务String service = Context.CONNECTIVITY_SERVICE;final ConnectivityManager connectivity = (ConnectivityManager)getSystemService(service);//访问网络信息NetworkInfo activeNetwork = connectivity.getActiveNetworkInfo();boolean isConnected = ((activeNetwork  != null) && (activeNetwork.isConnectedOrConnecting()));boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;Log.v("网络信息", "是否已连接网络:"+isConnected);Log.v("网络信息", "是否连接了wifi:"+isWiFi);if(isConnected){String netname=activeNetwork.getTypeName();Log.v("网络信息", "网络名称:"+netname);}}

启动wifi、扫描wifi热点

wifi是网络连接的一种

  private void scan_wifi() {//访问Wi-Fi ManagerString service = Context.WIFI_SERVICE;final WifiManager wifi = (WifiManager)getSystemService(service);//监听并更改Wi-Fi状态if (!wifi.isWifiEnabled())if (wifi.getWifiState() != WifiManager.WIFI_STATE_ENABLING)wifi.setWifiEnabled(true);//扫描wifi接入点,在开启了wifi,但还没有连上任何一个ssid时才会触发//注册用于接收扫描结果的broadcast receiverregisterReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {List<ScanResult> results = wifi.getScanResults();ScanResult bestSignal = null;for (ScanResult result : results) {if (bestSignal == null || WifiManager.compareSignalLevel(bestSignal.level,result.level) < 0)bestSignal = result;}String connSummary = String.format("%s 个网络被发现,其中 %s 是信号最强的",results.size(),bestSignal.SSID);Log.d("wifi扫描", connSummary);}}, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));//开始扫描wifi.startScan();}

获取当前wifi连接情况

private void wifiinfo() {//访问Wi-Fi ManagerString service = Context.WIFI_SERVICE;final WifiManager wifi = (WifiManager)getSystemService(service);//监听并更改Wi-Fi状态if (!wifi.isWifiEnabled())if (wifi.getWifiState() != WifiManager.WIFI_STATE_ENABLING)wifi.setWifiEnabled(true);//查询活动的网络连接,在连接到某个ssid时才触发WifiInfo info = wifi.getConnectionInfo();if (info.getBSSID() != null) {int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5); //信号强弱int speed = info.getLinkSpeed();//网上速率String units = WifiInfo.LINK_SPEED_UNITS; //速率单位String ssid = info.getSSID(); //ssidString mac = info.getMacAddress(); //mac地址int ip = info.getIpAddress();  //ip地址String cSummary = String.format("当前wifi正连接到%s,速度%s%s,信号强度 %s/5",ssid, speed, units, strength);Log.d("wifi连接", cSummary);}}

安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点相关推荐

  1. 安卓电话和网络开发全解:电话硬件检测、电话服务信息、sim信息、网络服务信息、数据连接和数据传输信息、电话状态监听

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓电话和网络开发全解,包括电话硬件检测.电话服务信息.sim信息.网络服务信息.数据连接和数据传输信息.通过phone state listener ...

  2. 安卓网络操作全解:发起请求,解析响应

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络操作全解. 发起请求,解析xml响应流 //发起一个请求 private void connect(String urlpath) {//启动 ...

  3. 安卓自定义view全解:初始化,onDraw函数,onMeasure函数,用户手势事件

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓自定义view全解. view类包含如下函数.可供重写. onFinishInflate() 回调方法,当应用从XML加载该组件并用它构建界面之后 ...

  4. 安卓图片处理全解:获取视频的缩略图

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓图片处理全解:获取视频的缩略图 获取视频的缩略图 private Bitmap getVideoThumbnail(String videoPat ...

  5. 安卓文件操作全解:内部文件、公共文件、私有文件、app静态文件

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓文件操作全解:内部文件.公共文件.私有文件.app静态文件. 读内部文件(当前应用程序文件夹下文件) public static String o ...

  6. python深度学习库keras——网络建模全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 一.数据预处理 1.序列预处理 1.1.填充序列pad_sequences keras.preprocessing.sequence.pad_ ...

  7. 安卓服务service全解,生命周期,前台服务、后台服务,启动注销、绑定解绑,注册

    全栈工程师开发手册 (作者:栾鹏) python教程全解 定义服务(服务的生命周期) 调用context.startService()时依次执行 ->onCreate()- >onStar ...

  8. 安卓Notification通知栏全解

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓通知栏是提醒用户信息有效手段,也是通过用户的行为触发事件服务的方式. Notification允许在当前应用程序不活动或不可见时向用户发送信号. ...

  9. 网络编程全解(Java)

    网络编程 1.1 概述 计算机网络: 计算网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信 ...

最新文章

  1. 10 个开源 Python OpenCV 小项目,YouTube热门
  2. 2021年春季学期-信号与系统-第一次作业参考答案-第一题
  3. oracle ipc message,【案例】Oracle RAC IPC send timeout error导致RAC的节点挂起解决办法
  4. Nginx 中 fastcgi_pass 监听端口 unix socket和tcp socket差别
  5. Linux 的进程状态
  6. Cenos6.4下远程连接mysql报错1130
  7. Struts2 Date类型转换问题
  8. nessus重置密码
  9. 用最新NLP库Flair做文本分类 1
  10. 一个ASP.NE导出Excel类
  11. java notifyall 唤醒顺序_Java的多线程NotiFyAll()唤醒线程时的顺序问题 | 学步园
  12. 【入门二】格式化输入/输出
  13. Java 基础常见面试题大全
  14. 保证线程安全的四种方法
  15. 京东VS淘宝:待付款订单-再次支付方案对比
  16. 【地理空间】初识OpenStreetMap
  17. app端分页 简单的分页 java
  18. Apache ZooKeeper【动物管理员】
  19. Android使用SoundPool播放音效实例详解
  20. 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren

热门文章

  1. HTML5网页语音识别功能演示
  2. mysql 优化器_mysql之优化器、执行计划、简单优化
  3. 知名IT公司的年度大会合集
  4. windows 下使用 MinGW + msys 编译 ffmpeg
  5. C语言的面向对象设计 —— 对 X264/FFMPEG 架构探讨
  6. java基本框架代码_Rxjava 源码系列 - 基础框架分析
  7. PowerDesigner生成SQL
  8. elementui 表格格式化
  9. 【codevs3119】高精度开根号(二分答案)
  10. 【NOIP2015】【Luogu2670】扫雷游戏(搜索,字符串输入输出)