zoukankan      html  css  js  c++  java
  • 在Android中扫描wifi热点演示实例教程

    早上发了一段扫描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>

    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>

    4、OK,就这些,效果看附件图片,我扫描到我这有2个热点。

     

  • 相关阅读:
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之六 多点触控
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之九 定位
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之七 重力感应
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之五 保存数据的几种方式
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之八 照相机
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之三 Application 配置详解
    Adobe Flash Builder 4.5 Android Air 程序开发系列 之四 打开与关闭应用程序是的保存数据
    ADOBE FLASH BUILDER 4.6 IOS 开发之部署与调试
    [译] 高性能JavaScript 1至5章总结
    页签及盒子的web标准实现
  • 原文地址:https://www.cnblogs.com/vus520/p/2561950.html
Copyright © 2011-2022 走看看