android开发教程之wifi开发示例

1、 WIFI网卡的状态
WIFI网卡的状态信息都以整型变量的形式存放在 android.net.wifi.WifiManager 类中,有以下状态:
WIFI_STATE_DISABLED
WIFI网卡不可用
WIFI_STATE_DISABLING
WIFI网卡正在关闭
WIFI_STATE_ENABLED
WIFI网卡可用
WIFI_STATE_ENABLING
WIFI网卡正在打开
WIFI_STATE_UNKNOWN
WIFI网卡状态未知
2、 操作WIFI 网卡所需的权限
CHANGE_NETWORK_STATE
允许应用程序改变网络连接状态
CHANGE_WIFI_STATE
允许应用程序改变WIFI 连接状态
ACCESS_NETWORK_STATE
允许应用程序获取网络的状态信息
ACCESS_WIFI_STATE
允许应用程序获得WIFI 的状态信息

3、 改变WIFI 网卡的状态
对WIFI 网卡进行操作需要通过对 WifiManager 对象来进行,获取该对象的方法如下:
复制代码 代码如下:
WifiManager wifiManager=(WifiManager) Context.getSystemService(Service.WIFI_SERVICE);

打开WIFI 网卡:
复制代码 代码如下:
wifiManager.setWifiEnabled(true);

关闭WIFI 网卡
复制代码 代码如下:
wifiManager.setWifiEnabled(false);

获取网卡的当前状态:
复制代码 代码如下:
wifiManager.getWifiState();

示例代码:由于Android模拟器不支持wifi操作,所以例子需要在实体手机上运行
AndroidManifest.xml
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="me.bym" 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> 
</manifest>

Activity
复制代码 代码如下:
package me.bym; 
import android.app.Activity; 
import android.content.Context; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 
public class WifiActivity extends Activity { 
    private Button startWifiButton = null; 
    private Button shutdownWifiButton = null; 
    private Button checkStateButton = null; 
    private WifiManager wifiManager = null; 
    private String res = ""; // 用来存放操作结果信息的字符串 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        startWifiButton = (Button) findViewById(R.id.StartWifiButton); 
        shutdownWifiButton = (Button) findViewById(R.id.ShutdownWifiButton); 
        checkStateButton = (Button) findViewById(R.id.CheckStateButton); 
        startWifiButton.setOnClickListener(new StartWifiListener()); 
        shutdownWifiButton.setOnClickListener(new ShutdownWifiListener()); 
        checkStateButton.setOnClickListener(new CheckStateListener()); 
    } 
    class StartWifiListener implements OnClickListener { 
        @Override 
        public void onClick(View v) { 
            wifiManager = (WifiManager) WifiActivity.this 
                    .getSystemService(Context.WIFI_SERVICE); 
            if (wifiManager.setWifiEnabled(true)) { 
                res = "启动wifi服务成功"; 
            } else { 
                res = "启动wifi服务失败"; 
            } 
            Toast.makeText(WifiActivity.this, res, Toast.LENGTH_SHORT).show(); 
        } 
    } 
    class ShutdownWifiListener implements OnClickListener { 
        @Override 
        public void onClick(View v) { 
            wifiManager = (WifiManager) WifiActivity.this 
                    .getSystemService(Context.WIFI_SERVICE); 
            if (wifiManager.setWifiEnabled(false)) { 
                res = "关闭wifi服务成功"; 
            } else { 
                res = "关闭wifi服务失败"; 
            } 
            Toast.makeText(WifiActivity.this, res, Toast.LENGTH_SHORT).show(); 
        } 
    } 
    class CheckStateListener implements OnClickListener { 
        @Override 
        public void onClick(View v) { 
            wifiManager = (WifiManager) WifiActivity.this 
                    .getSystemService(Context.WIFI_SERVICE); 
            switch (wifiManager.getWifiState()) { 
            case WifiManager.WIFI_STATE_DISABLED: 
                res = "WIFI已关闭"; 
                break; 
            case WifiManager.WIFI_STATE_DISABLING: 
                res = "WIFI正在关闭中"; 
                break; 
            case WifiManager.WIFI_STATE_ENABLED: 
                res = "WIFI已启用"; 
                break; 
            case WifiManager.WIFI_STATE_ENABLING: 
                res = "WIFI正在启动中"; 
                break; 
            case WifiManager.WIFI_STATE_UNKNOWN: 
                res = "未知WIFI状态"; 
                break; 
            } 
            Toast.makeText(WifiActivity.this, res, Toast.LENGTH_SHORT).show(); 
        } 
    } 
}

时间: 2024-09-18 00:14:34

android开发教程之wifi开发示例的相关文章

Android开发教程之shape和selector的结合使用

shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和selector在美化控件中的作用是至关重要的. 1.Shape 简介 作用:XML中定义的几何形状 位置:res/drawable/文件的名称.xml 使用的方法: Java代码中:R.drawable.文件的名称 XML中:android:background="@drawable/文件的名称&

C#开发教程之ftp操作方法整理_C#教程

1.最近项目开发涉及到ftp操作.发现FtpWebRequest类有些操作很麻烦, 例如创建目录只能创建一级目录,多级就失败.删除目录只能删除最后一级的空目录.同样下载也是. 故写下帮助类方便使用. 2.调用方法展示, var ftp = new FtpHelper("111.111.111.111", "xxxxxxx", "xxxxxx");//初始化ftp,创建ftp对象 ftp.uploadFile("F:\\wms.zip&q

Android入门教程之ListView的应用示例_Android

本文实例讲述了Android ListView的简单应用.分享给大家供大家参考,具体如下: 我们今天要讲的内容是Android中ListView中的实现.一共分为四个步骤,我将一一讲解: Step one:创建一个新的Android工程,命名为ListViewDemo. Step two:找到ListViewDemo.Java,把我们习惯的继承Activity,改成ListActivity,如下: public class ListViewDemo extends ListActivity St

Zend Framework入门教程之Zend_Mail用法示例_php实例

本文实例讲述了Zend Framework入门教程之Zend_Mail用法.分享给大家供大家参考,具体如下: Zend_Mail组件提供了通用化的功能来创建和发送文本. Zend_Mail通过PHP内建的mail()函数或者直接通过SMTP连接来发送邮件. 一个简单的邮件由收件人.主题.邮件内容以及发件人等内容组成. 步骤如下 1.创建对象 2.设置邮件内容 3.发送 案例: <?php require_once "Zend/Mail.php"; $my_mail = new Z

Zend Framework入门教程之Zend_Mail用法示例

本文实例讲述了Zend Framework入门教程之Zend_Mail用法.分享给大家供大家参考,具体如下: Zend_Mail组件提供了通用化的功能来创建和发送文本. Zend_Mail通过PHP内建的mail()函数或者直接通过SMTP连接来发送邮件. 一个简单的邮件由收件人.主题.邮件内容以及发件人等内容组成. 步骤如下 1.创建对象 2.设置邮件内容 3.发送 案例: <?php require_once "Zend/Mail.php"; $my_mail = new Z

android开发教程之switch控件使用示例_Android

复制代码 代码如下: <Switchandroid:id="@+id/open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textOff="蓝牙关闭中"android:textOn="蓝牙开启中" /> 复制代码 代码如下: open.setOnCheckedChangeListe

android开发教程之view组件添加边框示例_Android

给TextureView添加边框(专业名词为描边),有三种解决方案: 1.设置一个9 patch 的,右边框,中间是空的PNG. 2.自定义一个View,用Canvas画个边框. 3.用Android提供的ShapeDrawable来定义一个边框. 个人比较建议采用第三种方式,原因是因为第三种只要写XML,速度快,占用资源小,代码编写量也少,便于维护. 使用方法如下: 1.定义一个background.xml文件. 复制代码 代码如下: <?xml version="1.0" e

android开发教程之switch控件使用示例

复制代码 代码如下:<Switchandroid:id="@+id/open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textOff="蓝牙关闭中"android:textOn="蓝牙开启中" /> 复制代码 代码如下:open.setOnCheckedChangeListene

21天学习android开发教程之MediaPlayer_Android

本文介绍MediaPlayer的使用.MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用MediaPlayer,要视情况选择了.MediaPlayer播放音频比较简单,但是要播放视频就需要SurfaceView.SurfaceView比普通的自定义View更有绘图上的优势,它支持完全的OpenGL ES库. 先贴出本文程序运行结果的截图,上面是播放/停止音频,可用SeekBar来调进度,下面