Android中扫描wifi热点
生活随笔
收集整理的這篇文章主要介紹了
Android中扫描wifi热点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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>
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?WifiTester?extends?Activity?{
????????TextView?mainText;
????????WifiManager?mainWifi;
????????WifiReceiver?receiverWifi;
????????List<ScanResult>?wifiList;
????????StringBuilder?sb?=?new?StringBuilder();
????????public?void?onCreate(Bundle?savedInstanceState)?{
????????????????super.onCreate(savedInstanceState);
????????????????setContentView(R.layout.vifi);
????????????????setTitle("eoe教程:?Wifi?Test.??-by:IceskYsl");
????????????????mainText?=?(TextView)?findViewById(R.id.wifi);
????????????????mainWifi?=?(WifiManager)?getSystemService(Context.WIFI_SERVICE);
????????????????receiverWifi?=?new?WifiReceiver();
????????????????registerReceiver(receiverWifi,?new?IntentFilter(
????????????????????????????????WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
????????????????mainWifi.startScan();
????????????????mainText.setText("\nStarting?Scan...\n");
????????}
????????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("Starting?Scan");
????????????????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?{
????????????????public?void?onReceive(Context?c,?Intent?intent)?{
????????????????????????sb?=?new?StringBuilder();
????????????????????????wifiList?=?mainWifi.getScanResults();
????????????????????????for?(int?i?=?0;?i?<?wifiList.size();?i++)?{
????????????????????????????????sb.append(new?Integer(i?+?1).toString()?+?".");
????????????????????????????????sb.append((wifiList.get(i)).toString());
????????????????????????????????sb.append("\n\n");
????????????????????????}
????????????????????????mainText.setText(sb);
????????????????}
????????}
}
<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>
<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.eoeandroid.demo.testcode;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?WifiTester?extends?Activity?{
????????TextView?mainText;
????????WifiManager?mainWifi;
????????WifiReceiver?receiverWifi;
????????List<ScanResult>?wifiList;
????????StringBuilder?sb?=?new?StringBuilder();
????????public?void?onCreate(Bundle?savedInstanceState)?{
????????????????super.onCreate(savedInstanceState);
????????????????setContentView(R.layout.vifi);
????????????????setTitle("eoe教程:?Wifi?Test.??-by:IceskYsl");
????????????????mainText?=?(TextView)?findViewById(R.id.wifi);
????????????????mainWifi?=?(WifiManager)?getSystemService(Context.WIFI_SERVICE);
????????????????receiverWifi?=?new?WifiReceiver();
????????????????registerReceiver(receiverWifi,?new?IntentFilter(
????????????????????????????????WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
????????????????mainWifi.startScan();
????????????????mainText.setText("\nStarting?Scan...\n");
????????}
????????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("Starting?Scan");
????????????????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?{
????????????????public?void?onReceive(Context?c,?Intent?intent)?{
????????????????????????sb?=?new?StringBuilder();
????????????????????????wifiList?=?mainWifi.getScanResults();
????????????????????????for?(int?i?=?0;?i?<?wifiList.size();?i++)?{
????????????????????????????????sb.append(new?Integer(i?+?1).toString()?+?".");
????????????????????????????????sb.append((wifiList.get(i)).toString());
????????????????????????????????sb.append("\n\n");
????????????????????????}
????????????????????????mainText.setText(sb);
????????????????}
????????}
}
?
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>
?
轉載:http://www.eoeandroid.com/viewthread.php?tid=386
總結
以上是生活随笔為你收集整理的Android中扫描wifi热点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逐浪CMS4.6精彩预告之三:全新会员中
- 下一篇: Android中文API(96)——So