如何在 Unity3D HoloLens 应用程序上检测 BLE 信标?
How to detect BLE beacons on Unity3D HoloLens app?
我在 Unity3D 中构建了一个应用程序,它应该能够检测 Microsoft HoloLens 上的蓝牙低功耗信标。这是我用来完成此操作的 Unity C# 脚本代码。
using UnityEngine;
using Windows.Devices.Bluetooth.Advertisement;
public class BeaconDetector : MonoBehaviour
{
private BluetoothLEAdvertisementWatcher _watcher;
void Start()
{
_watcher = new BluetoothLEAdvertisementWatcher();
_watcher.Received += WatcherOnReceived;
_watcher.Start();
}
//This method should be called when a beacon is detected
void WatcherOnReceived(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args)
{
//Just a simple check if this method is even called
Debug.Log("Beacon detected!");
}
}
该应用程序在 HoloLens 上构建和运行得很好,但是(即使等待了几分钟)我在调试日志中没有得到所需的输出行。这对我来说意味着永远不会调用 WatcherOnReceived()
方法,最终 意味着没有检测到信标 。
我使用一些 Sensoro SmartBeacon-4AA,它可以传输 iBeacon 和 Eddystone 信号。
我已经尝试了几个星期,一路上做了几个教程,但我仍然不明白为什么这对我不起作用。
毕竟是权限问题。可以在 Unity(预构建)和 Visual Studio(post-构建)中解决此问题。以下是两种解决方案:
解决方案 A:在 Unity 中
- 前往编辑 > 项目设置 > 播放器。
- 在 检查器 中,打开选项卡 发布设置。
- 在功能部分下,确保蓝牙已启用。
单击 .gif 展开
解决方案 B:在 Visual Studio (2017)
- 在您的解决方案资源管理器 (Ctrl+Alt+L) 中,展开您的项目。
- 双击 Package.appxmanifest.
- 转到功能 选项卡。
- 再次确保蓝牙已启用。
单击 .gif 展开
这将使您的应用有权在 HoloLens 上使用蓝牙。
我在 Unity3D 中构建了一个应用程序,它应该能够检测 Microsoft HoloLens 上的蓝牙低功耗信标。这是我用来完成此操作的 Unity C# 脚本代码。
using UnityEngine;
using Windows.Devices.Bluetooth.Advertisement;
public class BeaconDetector : MonoBehaviour
{
private BluetoothLEAdvertisementWatcher _watcher;
void Start()
{
_watcher = new BluetoothLEAdvertisementWatcher();
_watcher.Received += WatcherOnReceived;
_watcher.Start();
}
//This method should be called when a beacon is detected
void WatcherOnReceived(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args)
{
//Just a simple check if this method is even called
Debug.Log("Beacon detected!");
}
}
该应用程序在 HoloLens 上构建和运行得很好,但是(即使等待了几分钟)我在调试日志中没有得到所需的输出行。这对我来说意味着永远不会调用 WatcherOnReceived()
方法,最终 意味着没有检测到信标 。
我使用一些 Sensoro SmartBeacon-4AA,它可以传输 iBeacon 和 Eddystone 信号。
我已经尝试了几个星期,一路上做了几个教程,但我仍然不明白为什么这对我不起作用。
毕竟是权限问题。可以在 Unity(预构建)和 Visual Studio(post-构建)中解决此问题。以下是两种解决方案:
解决方案 A:在 Unity 中
- 前往编辑 > 项目设置 > 播放器。
- 在 检查器 中,打开选项卡 发布设置。
- 在功能部分下,确保蓝牙已启用。
解决方案 B:在 Visual Studio (2017)
- 在您的解决方案资源管理器 (Ctrl+Alt+L) 中,展开您的项目。
- 双击 Package.appxmanifest.
- 转到功能 选项卡。
- 再次确保蓝牙已启用。
这将使您的应用有权在 HoloLens 上使用蓝牙。