다음을 통해 공유


BluetoothLEAdvertisementWatcherTrigger 클래스

정의

백그라운드에서 Bluetooth LE 광고를 검색하기 위해 등록된 트리거를 나타냅니다.

public ref class BluetoothLEAdvertisementWatcherTrigger sealed
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class BluetoothLEAdvertisementWatcherTrigger final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class BluetoothLEAdvertisementWatcherTrigger final
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class BluetoothLEAdvertisementWatcherTrigger
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class BluetoothLEAdvertisementWatcherTrigger
function BluetoothLEAdvertisementWatcherTrigger()
Public NotInheritable Class BluetoothLEAdvertisementWatcherTrigger
상속
Object Platform::Object IInspectable BluetoothLEAdvertisementWatcherTrigger
특성
구현

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

설명

광고를 받으면 백그라운드 작업이 시작됩니다.

이 트리거는 BluetoothAdvertisementWatcher 클래스와 유사하게 작동합니다. 단, 앱이 백그라운드에서 광고를 수신할 수 있으므로 더 많은 제한이 있습니다. 특히, 정확히 단일 필터 패턴은 백그라운드에서 허용됩니다(그 이상, 더 적은 것은 아님).

등록되면 백그라운드 감시자가 최상의 방식으로 서비스를 제공합니다. 트리거를 통해 구성된 필터와 일치하는 보급 알림이 수신되면 앱에 알리기 위한 백그라운드 작업이 시작됩니다. 또한 앱은 백그라운드 작업 컨텍스트에 제공된 트리거 세부 정보를 통해 백그라운드 감시자의 실패 또는 중단에 대한 알림을 받습니다. 광고 수신을 중지하려면 이 트리거와 연결된 백그라운드 작업을 등록 취소해야 합니다.

다음 보급 알림 유형은 일반적인 특성으로 인해 백그라운드에서 필터링할 수 없습니다.

  • 플래그(0x01)
  • 디바이스 클래스(0x0D)
  • Security Manager 대역 외 플래그(0x11)
  • 모양(0x19)
  • LE 역할(0x1C)

회사 식별자 필드의 가장 중요한 바이트에 해당하므로 0x00 있는 섹션의 두 번째 바이트에 대해서만 일치하는 제조업체별 데이터(0xFF) 형식의 원시 섹션에 대한 백그라운드 필터가 거부됩니다. 현재 모든 SIG 할당 회사 식별자는 이 바이트를 0x00 설정했으며, 단일 바이트만으로 부분 일치를 수행하면 여러 광고주가 있을 때 수신된 광고가 초과될 수 있습니다. 이는 시스템의 배터리 수명에 크게 영향을 줄 수 있습니다.

BluetoothLEAdvertisementWatcherTrigger의 사용은 사용 가능한 하드웨어 오프로드 리소스에 의해 제한됩니다. 로컬 Bluetooth 라디오에서 HCI 확장을 지원하는 새로운 Windows 장치는 더 낮은 전원 보급 알림 검사를 제공하여 비콘과 같은 장기 시나리오의 배터리 수명을 개선합니다. 사용 가능한 하드웨어 리소스의 양은 라디오 및 현재 시스템 전체 사용에 따라 달라지고, 이 트리거에 등록하려고 하면 더 이상 리소스를 사용할 수 없는 경우 BluetoothError.ResourceInUse 가 반환됩니다. 앱은 필요한 특정 원격 광고주에 대해서만 고유한 광고 데이터를 볼 때 집중적이고 효율적인 시나리오를 제공하기 위해 이러한 리소스를 아끼는 데 사용해야 합니다.

많은 새 Windows 디바이스에서 HCI 확장을 지원하지만, 특히 이전 Windows 버전의 이전 디바이스에서 업그레이드하는 경우 일부 디바이스는 지원하지 않을 수 있습니다. 이러한 경우 Windows는 소프트웨어의 하드웨어 필터링을 에뮬레이트하여 시스템의 모든 앱에서 디바이스당 최대 20개의 트리거 조건을 제공합니다. 이 소프트웨어 에뮬레이션을 사용하는 경우 최대값에 도달하면 트리거 리소스에 등록하려고 하면 오류 ERROR_NO_SYSTEM_RESOURCES(0x800705AA)과 함께 예외가 throw됩니다.

버전 기록

Windows 버전 SDK 버전 추가된 값
2004 19041 AllowExtendedAdvertisements

생성자

BluetoothLEAdvertisementWatcherTrigger()

BluetoothLEAdvertisementWatcherTrigger 클래스의 새 instance 만듭니다.

속성

AdvertisementFilter

페이로드 섹션 기반 필터링을 사용하는 Bluetooth LE 보급 알림 필터링의 구성을 가져오거나 설정합니다.

AllowExtendedAdvertisements

확장 광고 형식을 사용하여 광고를 수신할 수 있습니다. 기본값은 False입니다.

MaxOutOfRangeTimeout

이 트리거의 SignalStrengthFilter 속성에 지원되는 범위 외의 최대 시간 제한을 가져옵니다.

MaxSamplingInterval

이 트리거의 SignalStrengthFilter 속성에 지원되는 최대 샘플링 간격을 가져옵니다. 최대 샘플링 간격은 샘플링 필터를 비활성화하고 범위 내/외부로 들어오는 디바이스에 따라 수신된 이벤트만 트리거하는 데 사용됩니다.

MinOutOfRangeTimeout

이 트리거의 SignalStrengthFilter 속성에 지원되는 최소 범위를 벗어난 시간 제한을 가져옵니다.

MinSamplingInterval

이 트리거의 SignalStrengthFilter 속성에 지원되는 최소 샘플링 간격을 가져옵니다. 백그라운드 감시자의 최소 샘플링 간격은 포그라운드와 달리 0일 수 없습니다.

ScanParameters

백그라운드에서 Bluetooth LE 광고를 검색하기 위해 등록된 트리거를 나타냅니다.

SignalStrengthFilter

신호 강도 기반 필터링을 사용하는 Bluetooth LE 보급 알림 필터링의 구성을 가져오거나 설정합니다.

UseCodedPhy

백그라운드에서 Bluetooth LE 광고를 검색하기 위해 등록된 트리거를 나타냅니다.

UseUncoded1MPhy

백그라운드에서 Bluetooth LE 광고를 검색하기 위해 등록된 트리거를 나타냅니다.

적용 대상

추가 정보