Android wifi开发
来源:互联网 发布:附近陌生人聊天软件 编辑:程序博客网 时间:2024/05/22 23:27
这里给出一篇基本的wifi开发流程,希望对涉及到利用wifi进行网络传输的应用有一定帮助
1 AndroidManifest.xml中配置
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" > </uses-permission> <uses-permission android:name="android.permission.INTERNET" > </uses-permission>
2 获取wifi服务,并开启wifi
if (wifiManager == null) wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);if (!wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(true);}
3 注册wifi扫描监听器,并开始扫描
wifiNames = new ArrayList<String>();wifiDevices = new ArrayList<WifiConfiguration>();registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));wifiManager.startScan();
4 wifi扫描监听器
private final BroadcastReceiver wifiReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {List<WifiConfiguration> wcList = wifiManager.getConfiguredNetworks();WifiConfiguration wc = null;wifiNames.clear();wifiDevices.clear();for (int i = 0, len = wcList.size(); i < len; i++) {wc = wcList.get(i);if (!wifiNames.contains(wc.SSID)) {wifiNames.add(wc.SSID);wifiDevices.add(wc);}}};
5 获取到周围wifi列表后,让手机连上该wifi。(对wifi的连接我没有做具体的测试,希望对这段代码有问题的朋友可以给出评论)
WifiConfiguration wc = wifiDevices.get(index);int resId = wifiManager.addNetwork(wc);boolean isSucc = wifiManager.enableNetwork(resId, true);isSucc = wifiManager.reassociate();
6 获取本机的IP地址,通过网上提供的一个方法获取,不过似乎不是十分的准确
public String getLocalIpAddress() {try {for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {NetworkInterface intf = en.nextElement();for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress()) {return inetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e(TAG, ex.toString());}return null;}
7 连接到wifi后,通过本机IP地址便可以进行相关网络开发
- Android开发--WIFI开发
- Android wifi开发
- android wifi驱动开发
- Android开发 --- Wifi 管理
- android WIFI连接开发
- android WIFI连接开发
- Android WIFI开发
- android之wifi开发
- android WIFI连接开发
- android wifi开发介绍
- Android WIFI开发
- android wifi开发
- Android wifi开发
- android之wifi开发
- android之wifi开发
- android之wifi开发
- android WIFI连接开发
- Android wifi开发
- 嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(六)
- 【菜鸟笔记】Ubuntu 恢复默认面板
- c++练习3 新浪面试题
- u-boot移植时出现inline function 'coloured_LED_init' cannot be declared weak及相关错误时的解决办法!
- error:undefined reference to `coloured_LED_init'及相关错误时的解决办法!
- Android wifi开发
- Arduino 电子积木 串口RFID模块
- Visual Studio 2010 快捷键
- Set Component Changed and Search Edit?
- 如何学好C语言
- C语言冒泡算法
- 在js文件中显示jquery的智能提示VS2010
- C#字符串的常用操作
- Android开发中的UI事件监听处理机制总结