首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

使用 C# 與 Nokia PC Connectivity SDK 3.0 透過手機發送簡訊

     編輯:關於C語言

前言

早期開發人員若想在 C# 應用程式中整合簡訊發送功能,常使用第三方元件(如 Oxygen 控制項),但這類元件通常會在簡訊中附加廠商資訊,移除需付費註冊。幸好 Nokia 釋出免費的 PC Connectivity SDK 3.0,讓開發者能直接操作 Nokia 手機發送簡訊,無額外廣告且功能完整。本文將示範如何在 C# 專案中引用 SDK、撰寫發送簡訊程式碼,並說明適用機型與進階應用。

開發環境與準備工作

  • Visual Studio .NET (2003 或更新版本)
  • Nokia PC Connectivity SDK 3.0(可從 Nokia 官網免費下載)
  • 支援 SDK 3.0 的 Nokia 手機(範例使用 Nokia 8310,透過紅外線連接電腦)

專案參考設定

安裝 SDK 後,在專案的「加入參考」對話方塊中,於 COM 標籤勾選以下兩個元件:

  1. Nokia Setting Adapter for PC suite 3.7 (STTNGS3A_SLib)
  2. NokiaCL Messaging (NokiaCLMessaging)

並在程式碼頂端引入命名空間:

using STTNGS3A_SLib;
using NokiaCLMessaging;
using System.Text;

核心程式碼實作

以下方法封裝了檢查手機連線、建立簡訊物件、設定編碼與發送流程:

public void SendSms(string phoneNumber, string message)
{
    try
    {
        // 取得手機連線狀態
        PhoneInfo_Suite3 phoneStatus = new PhoneInfo_Suite3();
        DevNotifyOpt devStatus;
        phoneStatus.get_DeviceStatus(out devStatus);

        if (devStatus.ToString() == "ATTACHED")
        {
            // 建立簡訊適配器與簡訊項目
            ShortMsgAdapter smsAdapter = new ShortMsgAdapterClass();
            ShortMessageItem smsItem = new ShortMessageItemClass();
            smsItem.Type = ShortMessageType.SHORTMESSAGE_TYPE_GSM_SUBMIT;

            IGSMSubmit submit = (IGSMSubmit)smsItem.TypeProperties;

            // 字串轉 Unicode 編碼
            UnicodeEncoding unicode = new UnicodeEncoding();
            byte[] inputBytes = unicode.GetBytes(message.Trim());
            string unicodeMessage = Encoding.Unicode.GetString(inputBytes);

            submit.Message = unicodeMessage;
            submit.DestinationAddress = phoneNumber.Trim();
            submit.ServiceCenterAddress = txtSmsCenter.Text.Trim(); // 簡訊中心號碼
            submit.DataCodingScheme = 8; // 使用 Unicode 編碼 (UCS2)
            submit.ValidityPeriodRelative = 255;
            submit.ProtocolID = 0;

            // 發送簡訊
            smsAdapter.SendSMS(ShortMessageRouteType.SHORTMESSAGE_ROUTE_TYPE_ANY, submit);
            MessageBox.Show("簡訊發送成功!");
        }
        else
        {
            MessageBox.Show("未偵測到連接的手機!");
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("錯誤:" + ex.ToString(), "系統提示");
    }
}

關鍵點說明

1. 手機連線偵測

透過 PhoneInfo_Suite3.get_DeviceStatus 取得 DevNotifyOpt,若回傳 ATTACHED 表示手機已正確連接(紅外線、纜線或藍牙皆可)。

2. 簡訊編碼處理

中文簡訊需使用 Unicode (UCS2) 編碼,將 DataCodingScheme 設為 8,並將字串轉為 Unicode 位元組陣列後再還原為字串指派給 Message 屬性,確保中文字元正確傳送。

3. 簡訊中心號碼

ServiceCenterAddress 必須填入正確的簡訊中心號碼(通常可從手機設定中查詢),範例中從 UI 控制項 txtSmsCenter 取得。

適用機型與擴充應用

SDK 3.0 支援當時主流 Nokia 手機(如 6210, 6310i, 8310 等)。若為較舊機型(如 5110, 3310),需改用 SDK 2.1,並參考 Nokia SMS Adapter (PC Suite 3.7) 元件。詳細支援清單請參閱 SDK 安裝目錄下的說明文件。

除了發送簡訊,SDK 3.0 還提供接收簡訊、電話簿管理、行事曆、手機設定讀寫等功能。若搭配資料庫設計,可讓公司多台電腦共用一支手機發送簡訊,構建低成本的企業通訊平台。

結語

Nokia PC Connectivity SDK 3.0 為 C# 開發者提供了免費、穩定的簡訊整合方案。透過簡單的 COM 元件互操作,即可實現手機連線檢測、Unicode 簡訊編碼與發送,並可延伸至更豐富的手機管理應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved