您的位置:首页 > 移动开发 > Android开发

Android WIFI基本操作

2012-04-27 15:36 281 查看
第一步:布局文件

<?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/mytext"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="搜索结果"

/>

<Button

android:id="@+id/startwifi"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="开启WIFI"/>

<Button

android:id="@+id/stopwifi"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="关闭WIFI"/>

</LinearLayout>

第二步:测试类

package mars.wifi;

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.WifiInfo;

import android.net.wifi.WifiManager;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class WifiActivity extends Activity {

private TextView disPlayText;

private WifiManager mainWifi;

private WifiReceiver receiverWifi;

private Button startWiFiButton;

private Button stopWiFiButton;

private WifiInfo wifiInfo;

//搜做WIFI结果

List<ScanResult> wifiList;

StringBuilder sb = new StringBuilder();

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

setTitle("WIFI操作介绍");

disPlayText = (TextView) findViewById(R.id.mytext);

startWiFiButton=(Button)findViewById(R.id.startwifi);

stopWiFiButton=(Button)findViewById(R.id.stopwifi);

stopWiFiButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

mainWifi.setWifiEnabled(false);

//获得连接信息

wifiInfo=mainWifi.getConnectionInfo();

System.out.println(wifiInfo.getIpAddress());

mainWifi.disconnect();

}

});

startWiFiButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

receiverWifi = new WifiReceiver();

registerReceiver(receiverWifi, new IntentFilter(

WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

mainWifi.startScan();

}

});

}

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, 0, 0, "Refresh");

return super.onCreateOptionsMenu(menu);

}

public boolean onMenuItemSelected(int featureId, MenuItem item) {

mainWifi.startScan();

disPlayText.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");

}

disPlayText.setText(sb);

}

}

}

第三步:配置文件,添加权限

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="mars.wifi" android:versionCode="1" android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".WifiActivity" 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-sdk android:minSdkVersion="4" />

<!-- 以下是使用wifi访问网络所需要的权限 -->

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" >

</uses-permission>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >

</uses-permission>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >

</uses-permission>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >

</uses-permission>

<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" >

</uses-permission>

<uses-permission android:name="android.permission.INTERNET" >

</uses-permission>

</manifest>

第四步:演示



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: