MainActivity如下:

package cc.testwifi;import android.os.Bundle;import android.app.Activity;/** * Demo描述: * 监听Wifi网络的变化并且获得当前信号强度 *  * 参考资料: * http://blog.csdn.net/way_ping_li/article/details/8777478 * Thank you very much * */public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}}


WifiChangeBroadcastReceiver如下:

package cc.testwifi;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;public class WifiChangeBroadcastReceiver extends BroadcastReceiver {private Context mContext;@Overridepublic void onReceive(Context context, Intent intent) {mContext=context;System.out.println("Wifi发生变化");getWifiInfo();}private void getWifiInfo() {        WifiManager wifiManager = (WifiManager) mContext.getSystemService(mContext.WIFI_SERVICE);        WifiInfo wifiInfo = wifiManager.getConnectionInfo();        if (wifiInfo.getBSSID() != null) {        //wifi名称            String ssid = wifiInfo.getSSID();            //wifi信号强度            int signalLevel = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), 5);            //wifi速度            int speed = wifiInfo.getLinkSpeed();            //wifi速度单位            String units = WifiInfo.LINK_SPEED_UNITS;            System.out.println("ssid="+ssid+",signalLevel="+signalLevel+",speed="+speed+",units="+units);        }   }}


AndroidManifest.xml如下:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="cc.testwifi"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="10"        android:targetSdkVersion="10" />        <uses-permission android:name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="cc.testwifi.MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>                <receiver android:name="cc.testwifi.WifiChangeBroadcastReceiver">            <intent-filter >                <action android:name="android.net.wifi.RSSI_CHANGED" />                     </intent-filter>        </receiver>    </application></manifest>

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="监听wifi变化并获得当前信号强度"         android:layout_centerHorizontal="true"        android:layout_marginTop="50dip"    /></RelativeLayout>

更多相关文章

  1. Android中隐藏标题栏和状态栏(电源,信号,时间等信息)
  2. Android(安卓)sensor 实用篇
  3. Android(安卓)Studio
  4. Android传感器的运用之ACCELEROMETER
  5. webView 的深入研究
  6. android提高启动速度
  7. Qt on Android(安卓)核心编程
  8. Android本地硬盘的API文档打开速度慢
  9. 真实可行的android 基站定位代码

随机推荐

  1. Android(安卓)汉字的正则表达式
  2. Android中调用系统摄像并且保存到指定位
  3. android中各种数据类型之间转换
  4. Android(安卓)6.0关于权限的问题
  5. 记录来电
  6. Android(安卓)APK瘦身实践
  7. Android--WindowManager.LayoutParams(下
  8. Android中如何设置边框
  9. Kotlin 配置dataBinding
  10. Android面试题(25)-Bundle机制