基于局域网的视频聊天系统--蛙酷

  作者:邱超 丁建辉 阳平 时间:2014-12-29来源:电子产品世界

编者按:  摘要:随着无线网络的发展,支持Wi-Fi的电子产品越来越多,与Wi-Fi绑定的应用也层出不穷,但还没有一款基于Wi-Fi的视频聊天软件能够满足人们的日常交互需求,因此我们开发出“蛙酷”,一款基于局域网的视频聊天软件,能够在局域网覆盖下实现随时随地视频聊天和视频会议,且无需耗费任何手机数据流量,真正给用户带来了随聊随见的交互体验。   1 引言   目前,社会所流行的聊天软件所专注的问题仅限于视频效果和软件盈利上,应用目的趋于商业化,而没有真正从用户的角度出发去设计开发软件,

  (5)Wi-Fi Settings应用程序部分

  这是Android自带的一个应用程序,在手机的Settings中,它可以让用户手动打开或关闭Wi-Fi功能。当用户打开Wi-Fi功能后,它会自动搜索周围的无线网络,并以列表的形式显示,供用户选择,默认会连接用户上一次成功连接的无线网络。这部分代码位于./packages/apps/Settings/src/com/android/settings/wifi中。

  3.2 Wi-Fi执行过程

  3.2.1 从Settings中启动Wi-Fi

  当用户按下Wi-Fi按钮后,Android调用WifiEnabler的onPreferenceChange,再由WifiEnabler调用WifiManager的setWifiEnabled接口函数,通过AIDL,调用WifiService的setWifiEnabled函数,WifiService接着向自身发送一条MESSAGE_ENABLE_WIFI消息,在处理该消息的代码中做真正的使能工作:首先装载WIFI内核模块(该模块的位置硬编码为"/system/lib/modules/wlan.ko"), 然后启动wpa_supplicant(配置文件硬编码为"/data/misc/wifi/wpa_supplicant.conf"),再通过WifiStateTracker启动WifiMonitor中的监视线程。

  当成功使能后,广播发送WIFI_STATE_CHANGED_ACTION这个Intent通知外界Wi-Fi已经成功使能。WifiEnabler创建的时候就会向Android注册接收

  WIFI_STATE_CHANGED_ACTION,因此它会收到该Intent,从而开始扫描。

  3.2.2 查找AccessPoint (AP)

  扫描的入口函数是WifiService的startScan,它往wpa_supplicant发送SCAN命令。当wpa_supplicant处理完SCAN命令后,它会向控制通道发送事件通知扫描完成, wifi_wait_for_event函数会接收到该事件,由此WifiMonitor中的MonitorThread会被执行处理这个事件,WifiStateTracker接着广播SCAN_RESULTS_AVAILABLE_ACTION这个Intent,WifiLayer注册了接收SCAN_RESULTS_AVAILABLE_ACTION这个Intent,所以它的相关处理函数handleScanResultsAvailable会被调用,在该函数中拿到SCAN的结果(最终是往wpa_supplicant发送SCAN_RESULT命令并读取返回值来实现的)。

  对每一个扫描返回的AP,WifiLayer会调用WifiSettings的onAccessPointSetChanged函数,从而最终把该AP加到GUI显示列表中。

  3.2.3 连接AP

  当用户在AcessPointDialog中选择好加密方式和输入密钥之后,再点击连接按钮,Android就会去连接这个AP。

  WifiLayer会先检测这个AP是不是之前被配置过,这个是通过向wpa_supplicant发送LIST_NETWORK命令并且比较返回值来实现的,如果wpa_supplicant没有这个AP的配置信息,则向wpa_supplicant发送ADD_NETWORK命令来添加该AP,ADD_NETWORK命令返回一个ID,WifiLayer再用这个返回的ID作为参数向wpa_supplicant发送ENABLE_NETWORK命令,从而让wpa_supplicant去连接该AP。

1 2 3

关键词: 局域网 蛙酷 视频聊天 Wi-Fi JNI Android 201501

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版