[Windows Mobile]取得 WiFi 訊號強度

  • 18764
  • 0
  • 2013-04-15

[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

image

程式碼

以下程式碼是當點選 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

Smart Device Framework