Bagikan melalui


Mengirim SMS dengan menggunakan set karakter kustom

Jika Anda memerlukan akses ke unit data protokol pesan mentah (PDU) untuk mencapai skenario yang tidak didukung oleh antarmuka mode teks, Windows 8, Windows 8.1, dan Windows 10 mengaktifkan pengiriman dan pembacaan pesan SMS yang diterima mode PDU.

Anda mungkin perlu menggunakan antarmuka SMS mode PDU dalam kasus berikut:

  • Untuk mengirim atau membaca SMS yang diterima dengan menggunakan Tabel Shift Tunggal Bahasa Nasional atau Tabel Shift Penguncian Bahasa Nasional seperti yang didefinisikan dalam 3GPP TS 23.038.

  • Untuk mengirim SMS multi-bagian menggunakan set karakter yang berbeda untuk setiap segmen.

Contoh kode JavaScript untuk mengirim pesan SMS dengan menggunakan antarmuka mode PDU

function smsDevicePDUSend()
{
  if (smsDevice !== null)
  {
    // Defines a binary message
    var smsMessage = new Windows.Devices.Sms.SmsBinaryMessage();
    var messsagePdu = “0011000B914152828377F90000AA0CC8F71D14969741F977FD07”;
    var messagePduByteArray = hexToByteArray(messsagePdu);
    smsMessage.setData(messagePduByteArray);

    if (smsDevice.cellularClass === Windows.Devices.Sms.CellularClass.gsm)
    {
      smsMessage.format = Windows.Devices.Sms.SmsDataFormat.gsmSubmit;
    }
    else
    {
      smsMessage.format = Windows.Devices.Sms.SmsDataFormat.cdmaSubmit;
    }
    var sendSmsMessageOperation = smsDevice.sendMessageAsync(smsMessage);

    sendSmsMessageOperation.done(function (reply) {
      WinJS.log("Sent message in PDU format", "sample", "status");
    }, errorCallback);
}

// Used to convert hex PDU to byte array for sending SMS using PDU //mode
function hexToByteArray(hexString)
{
  var result = [];
  var hexByte = "";
  var decByte = 0;
  for (var i = 0; i < hexString.length; i = i + 2) {
    hexByte = hexString.substring(i, i + 2);
    decByte = parseInt(hexByte, 16);
    result.push(decByte);
  }
  return result;
}

Contoh kode JavaScript untuk membaca pesan SMS yang diterima dengan menggunakan antarmuka mode PDU

function smsDeviceRead()
{
  try
  {
    if (smsDevice !== null)
    {
      var messageStore = smsDevice.messageStore;
      var messageID = “1” // select a Message Id to read 

      // Check for a valid ID number
      if (isNaN(messageID) || messageID < 1 || messageID > messageStore.maxMessages)
      {
        WinJS.log("Invalid ID number", "sample", "error");
        return;
     }

     var getSmsMessageOperation = messageStore.getMessageAsync(messageID);

     // Display message when get is completed
     getSmsMessageOperation.done(smsMessageReadSuccess, errorCallback);
     } 
  }
  catch (err) {
    // handle error
  }
}

function smsMessageReadSuccess(smsMessage)
{
  try
  {
    if (smsMessage instanceof SmsBinaryMessage) {
    var format  = smsMessage.format;
    var pduData = smsMessage.getData(); // byte array 
  }
  catch (err)
  {
    WinJS.log("SMS did not set up: " + err, "sample", "error");
  }
}

Mengembangkan aplikasi SMS