Android Wifi开发 搜索AP并获取AP属性

来源:互联网 发布:airplayer for mac 编辑:程序博客网 时间:2024/04/29 02:42

AndroidMenifest.xml:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="hk.edu.polyu.comp.APSingnal" android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"><activity android:name=".APSingnalActivity" android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission></manifest>

主程序:

package hk.edu.polyu.comp.APSingnal;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 APSingnalActivity extends Activity {    /** Called when the activity is first created. */   private TextView mainText;   WifiManager mainWifi;   WifiReceiver receiverWifi;   List<ScanResult> listWifi;   StringBuilder sb=new StringBuilder();  @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mainText=(TextView)findViewById(R.id.TextView01);        mainWifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);                receiverWifi=new WifiReceiver();        registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));        mainWifi.startScan();        mainText.setText("Starting Scan...");    }public boolean onCreateOptionsMenu(Menu menu){menu.add(0,0,0,"Refresh");return super.onCreateOptionsMenu(menu);}public boolean onMenuItemSelected(int featureId,MenuItem item){mainWifi.startScan();mainText.setText("Refresh Wifi...");return super.onMenuItemSelected(featureId, item);}protected void onPause(){unregisterReceiver(receiverWifi);super.onPause();}protected void onResume(){registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));super.onResume();}class WifiReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubsb=new StringBuilder();listWifi=mainWifi.getScanResults();for(int i=0;i<listWifi.size();i++){sb.append(new Integer(i).toString()+".");//sb.append(listWifi.get(i).SSID+" "+listWifi.get(i).level);sb.append(listWifi.get(i).toString());sb.append("\n");}mainText.setText(sb);}}}

效果图: