Android中扫描wifi热点
16lz
2021-01-23
1、首先新建了布局模板XML文件vifi.xml,代码很简单,如下: <? xmlversion="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.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{
TextViewmainText;
WifiManagermainWifi;
WifiReceiverreceiverWifi;
List < ScanResult > wifiList;
StringBuildersb = new StringBuilder();
public void onCreate(BundlesavedInstanceState){
super .onCreate(savedInstanceState);
setContentView(R.layout.vifi);
setTitle( " eoe教程:WifiTest.-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( " \nStartingScan...\n " );
}
public boolean onCreateOptionsMenu(Menumenu){
menu.add( 0 , 0 , 0 , " Refresh " );
return super .onCreateOptionsMenu(menu);
}
public boolean onMenuItemSelected( int featureId,MenuItemitem){
mainWifi.startScan();
mainText.setText( " StartingScan " );
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(Contextc,Intentintent){
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 >
< 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{
TextViewmainText;
WifiManagermainWifi;
WifiReceiverreceiverWifi;
List < ScanResult > wifiList;
StringBuildersb = new StringBuilder();
public void onCreate(BundlesavedInstanceState){
super .onCreate(savedInstanceState);
setContentView(R.layout.vifi);
setTitle( " eoe教程:WifiTest.-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( " \nStartingScan...\n " );
}
public boolean onCreateOptionsMenu(Menumenu){
menu.add( 0 , 0 , 0 , " Refresh " );
return super .onCreateOptionsMenu(menu);
}
public boolean onMenuItemSelected( int featureId,MenuItemitem){
mainWifi.startScan();
mainText.setText( " StartingScan " );
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(Contextc,Intentintent){
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入门级小软件身高体重计算器源代码,初学者可以看看~
- 从简单的android 登陆应用 ,学习布局,
- android基础(一) View与六大布局(上)
- RelativeLayout布局
- Android移动开发之【Android实战项目】渐变的TextView小漂亮代码
- 【063】◀▶ Android (I) - 控件和布局
- Android 常用代码大集合
- Android Gallery3D效果 教程 案例 代码
- Android为按钮添加相应事件的代码