[Windows Mobile]取得 WiFi 訊號強度
1. Question
問題來自 MSDN Forums : WiFi訊號強度 使用c#
簡述如下
如何抓取WiFi訊號強度,去 google 尋找以及 MSDN 查詢,有查到類似的 code
是否有比較具體性的範例程式或者相關書籍以及相關網站可做為參考
2. Solution
可使用 OpenNETCF.Net.NetworkInformation 取得 Network 相關資訊
使用時需下載並安裝 Smart Device Framework,安裝後將 OpenNETCF.Net 加入參考,路徑為 C:\Program Files\Smart Device Framework\Bin
程式碼
以下程式碼是當點選 MenuItem 時,取得並顯示所有 WiFi 網路狀態
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using OpenNETCF.Net.NetworkInformation;
namespace SmartDeviceWifi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void menuItem1_Click(object sender, EventArgs e)
{
this.lbNetInfo.Items.Clear(); // 清除 lbNetInfo 的 Items
try
{
// 取得所有 Network Interface 資訊
foreach (INetworkInterface currentNI in WirelessZeroConfigNetworkInterface.GetAllNetworkInterfaces())
{
// 當 Network Interface 類型為 WZC Network Interface 時
if (currentNI is WirelessZeroConfigNetworkInterface)
{
// 取得所有鄰近的 Access Points
foreach (AccessPoint currentAP in ((WirelessZeroConfigNetworkInterface) currentNI).NearbyAccessPoints)
{
// AccessPoint.Name 網路名稱
// AccessPoint.Channel 頻道
// AccessPoint.MacAddress MacAddress
// AccessPoint.SignalStrength.Decibels 訊號強弱 dB 值
this.lbNetInfo.Items.Add(currentAP.Name + " : " + currentAP.SignalStrength.Decibels.ToString());
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
3. Reference