读书人

android gt; WiFi gt; 扫描就近WIFI

发布时间: 2012-09-24 13:49:41 作者: rapoo

android > WiFi > 扫描附近WIFI

Activity?

?

package wifi3.com;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 Wifi3Activity extends Activity {    /** Called when the activity is first created. */private TextView wifiText;      private WifiManager wifiManager;      private StringBuilder sb;      private List<ScanResult> wifiList;      private WifiReceiver wifiReceiver;         @Override    public 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");                    }        @Override      public boolean onCreateOptionsMenu(Menu menu) {          menu.add(0, 0, 0, "Refresh");          return super.onCreateOptionsMenu(menu);      }        @Override      public boolean onMenuItemSelected(int featureId, MenuItem item) {          wifiManager.startScan();          wifiText.setText("Starting Scan");          return super.onMenuItemSelected(featureId, item);        }        @Override      protected void onPause() {          unregisterReceiver(wifiReceiver);          super.onPause();      }            @Override      protected void onResume() {          registerReceiver(wifiReceiver, new IntentFilter(                  WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));          super.onResume();      }            private final class WifiReceiver extends BroadcastReceiver {          @Override          public 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());          }      }         }
?

布局文件

?

<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"><LinearLayout     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></ScrollView>

?

Manifest?

?

?

?

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="wifi3.com"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="8" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >        <activity            android:name=".Wifi3Activity"            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.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> </manifest>
?

?

其中 信号强度 ?调用 level 参数

?

< 70 强

< 80 较强

< 90 较弱

<100 弱

?

?

读书人网 >Android

热点推荐