Windows.Networking.Proximity 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含支持近距离设备之间的连接的类。
类
ConnectionRequestedEventArgs |
包含传递给具有 ConnectionRequested 事件的应用程序的属性。 |
PeerFinder |
使你能够在附近设备上发现应用的其他实例,并使用点击手势或浏览在对等应用之间创建套接字连接。 若要在 Windows 8.1 及更高版本上创建蓝牙套接字连接,请改用 Windows.Devices.Bluetooth.Rfcomm。 |
PeerInformation |
包含标识对等方的信息。 |
PeerWatcher |
动态发现无线范围内的对等应用。 |
ProximityDevice |
使你能够将消息发布到近似设备或订阅来自近似设备的消息。 |
ProximityMessage |
表示从订阅收到的消息。 |
TriggeredConnectionStateChangedEventArgs |
包含 TriggeredConnectionStateChanged 事件传递给应用程序的属性。 |
枚举
PeerDiscoveryTypes |
指示哪些发现选项可用于 PeerFinder 类。 |
PeerRole |
描述连接到多个对等方时对等应用的角色。 |
PeerWatcherStatus |
描述 PeerWatcher 对象的状态。 |
TriggeredConnectState |
指示与对等应用程序的连接的当前状态。 |
委托
DeviceArrivedEventHandler |
描述处理 DeviceArrived 事件的方法。 |
DeviceDepartedEventHandler |
描述处理 DeviceDeparted 事件的方法。 |
MessageReceivedHandler |
描述将处理在收到已订阅的消息时触发的事件的方法。 |
MessageTransmittedHandler |
介绍将处理在传输已发布消息时触发的事件的方法。 |
示例
此示例演示如何使用 ProximityDevice 类来确定设备何时进入和离开邻近感应。
Windows.Networking.Proximity.ProximityDevice proximityDevice;
private void InitializeProximityDevice()
{
proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault();
if (proximityDevice != null) {
proximityDevice.DeviceArrived += ProximityDeviceArrived;
proximityDevice.DeviceDeparted += ProximityDeviceDeparted;
WriteMessageText("Proximity device initialized.\n");
}
else
{
WriteMessageText("Failed to initialized proximity device.\n");
}
}
private void ProximityDeviceArrived(Windows.Networking.Proximity.ProximityDevice device)
{
WriteMessageText("Proximate device arrived. id = " + device.DeviceId + "\n");
}
private void ProximityDeviceDeparted(Windows.Networking.Proximity.ProximityDevice device)
{
WriteMessageText("Proximate device departed. id = " + device.DeviceId + "\n");
}
// Write a message to MessageBlock on the UI thread.
private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;
async private void WriteMessageText(string message, bool overwrite = false)
{
await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
if (overwrite)
MessageBlock.Text = message;
else
MessageBlock.Text += message;
});
}
Dim proximityDevice As Windows.Networking.Proximity.ProximityDevice
Private Sub InitializeProximityDevice()
proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault()
If proximityDevice IsNot Nothing Then
AddHandler proximityDevice.DeviceArrived, AddressOf ProximityDeviceArrived
AddHandler proximityDevice.DeviceDeparted, AddressOf ProximityDeviceDeparted
WriteMessageText("Proximity device initialized." & vbTab)
Else
WriteMessageText("Failed to initialized proximity device." & vbTab)
End If
End Sub
Private Sub ProximityDeviceArrived(device As Windows.Networking.Proximity.ProximityDevice)
WriteMessageText("Proximate device arrived. id = " & device.DeviceId & vbTab)
End Sub
Private Sub ProximityDeviceDeparted(device As Windows.Networking.Proximity.ProximityDevice)
WriteMessageText("Proximate device departed. id = " & device.DeviceId & vbTab)
End Sub
' Write a message to MessageBlock on the UI thread.
Private Async Sub WriteMessageText(message As String, Optional overwrite As Boolean = False)
Await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
Sub()
If overwrite Then
MessageBlock.Text = message
Else
MessageBlock.Text &= message
End If
End Sub)
End Sub
注解
可以使用邻近感应通过简单的点击手势来连接计算机。 如果两台计算机彼此相差不到 3 厘米至 4 厘米,或被点击在一起,则每台计算机的操作系统将检测另一台计算机。 然后,可以连接这两台计算机以共享内容或发布和订阅消息。 邻近感应还支持通过 Wi-Fi Direct 发现对等设备。
重要
邻近感应 API 不提供身份验证、加密或消息完整性。 不要使用邻近感应来交换用户敏感信息,如密码、财务数据、短信、电子邮件、照片或政府 ID 号。