在Android中扫描wifi热点演示实例教程

来源:互联网 发布:tcpip网络编程 pdf 编辑:程序博客网 时间:2024/04/29 06:20

转自:http://www.eoeandroid.com/viewthread.php?tid=386


1、首先新建了布局模板XML文件vifi.xml,代码很简单,如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView android:id="@+id/wifi"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /></LinearLayout>

2、写java代码,新建个Activity,代码如下:
package com.archermind.wifi;import java.util.List;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.wifi.ScanResult;import android.net.wifi.WifiManager;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class MainActivity extends Activity {private TextView wifiText;private WifiManager wifiManager;private StringBuilder sb;private List<ScanResult> wifiList;private WifiReceiver wifiReceiver;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);sb = new StringBuilder();wifiText = (TextView) findViewById(R.id.wifi);wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);wifiReceiver = new WifiReceiver();registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));wifiManager.startScan();wifiText.setText("\nStarting Scan\n");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {menu.add(0, 0, 0, "Refresh");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onMenuItemSelected(int featureId, MenuItem item) {wifiManager.startScan();wifiText.setText("Starting Scan");return super.onMenuItemSelected(featureId, item);}@Overrideprotected void onPause() {unregisterReceiver(wifiReceiver);super.onPause();}@Overrideprotected void onResume() {registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));super.onResume();}private final class WifiReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {sb = new StringBuilder();wifiList = wifiManager.getScanResults();for (int i = 0; i < wifiList.size(); i++) {sb.append(new Integer(i + 1).toString() + ".");sb.append((wifiList.get(i)).toString()).append("\n\n");}wifiText.setText(sb.toString());}}}
3、申请相关权限,代码如下:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>   <uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"></uses-permission>   <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>   <uses-permission android:name="android.permission.INTERNET"></uses-permission>   <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>   <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"></uses-permission>



原创粉丝点击