使用者授予所有必要權限後,應用程式就能開始放送廣告並探索鄰近裝置,進而找出附近的裝置。
首先,請為您的用途選擇 Strategy
。您選取的 Strategy
會決定應用程式的連線拓撲 (一個廣告客戶需要 N 個發現工具,或從 N 廣告客戶到 N 個搜尋者)。
在要宣傳的裝置上,呼叫 startAdvertising()
和需要的 Strategy
,以及用於識別應用程式的 serviceId
參數。
在發掘附近廣告客戶的裝置上,呼叫相同 Strategy
和 serviceId
的 startDiscovery()
。
serviceId
值必須明確識別您的應用程式。最佳做法是使用應用程式的套件名稱 (例如 com.google.example.myapp
)。
下例說明如何宣傳:
private void startAdvertising() { AdvertisingOptions advertisingOptions = new AdvertisingOptions.Builder().setStrategy(STRATEGY).build(); Nearby.getConnectionsClient(context) .startAdvertising( getLocalUserName(), SERVICE_ID, connectionLifecycleCallback, advertisingOptions) .addOnSuccessListener( (Void unused) -> { // We're advertising! }) .addOnFailureListener( (Exception e) -> { // We were unable to start advertising. }); }
ConnectionLifecycleCallback
參數是探索者要求連結至廣告客戶的時,系統會叫用的回呼。如要進一步瞭解如何定義此回呼,請參閱「管理連線」。
以下範例說明如何探索:
private void startDiscovery() { DiscoveryOptions discoveryOptions = new DiscoveryOptions.Builder().setStrategy(STRATEGY).build(); Nearby.getConnectionsClient(context) .startDiscovery(SERVICE_ID, endpointDiscoveryCallback, discoveryOptions) .addOnSuccessListener( (Void unused) -> { // We're discovering! }) .addOnFailureListener( (Exception e) -> { // We're unable to start discovering. }); }
EndpointDiscoveryCallback
參數是在附近的廣告客戶發現或遺失時叫用的回呼。如要進一步瞭解如何定義此回呼,請參閱「管理連線」。
不再需要刊登廣告時,請呼叫 stopAdvertising()
;如果不再需要探索,請呼叫 stopDiscovery()
。