分類彙整: Windows

將 Windows 10 PC 變成 iBeacon:使用 windows-rs 實作

這幾天在練習使用 windows-rs,寫了一個讓 Windows 10 廣播 iBeacon 訊號的小程式。

完整的程式碼:https://github.com/riddleling/beacon-publisher-on-windows

這個程式很簡單, 使用 UWP API 的 BluetoothLEAdvertisementPublisher 發布 iBeacon 廣告:

let manufacturer_data = BluetoothLEManufacturerData::new()?;

// 設定 iBeacon 的 Manufacturer Data:
manufacturer_data.SetCompanyId(0x004C)?;  // Company ID
let data:[u8; 23] = [
    // Type:
    0x02,
    // Data Length:
    0x15,
    // Proximity UUID:
    0xE3, 0x0A, 0xC8, 0xFE,
    0x75, 0xB8, 0x47, 0x21,
    0x4B, 0x5D, 0x56, 0xB7, 
    0x07, 0x64, 0x25, 0xA9,
    // Major:
    0x00, 0x02,
    // Minor:
    0x00, 0x03,
    // TX Power:
    0xC8
];

let writer = DataWriter::new()?;
writer.WriteBytes(&data)?;

let buffer = writer.DetachBuffer()?;
manufacturer_data.SetData(buffer)?;

let publisher = BluetoothLEAdvertisementPublisher::new()?;

// 把 Manufacturer Data 加入 publisher:
publisher.Advertisement()?.ManufacturerData()?.Append(manufacturer_data)?;

// 開始廣播:
publisher.Start()?;

停止廣播:

publisher.Stop()?;