From f2b0686987db22fedaf290141641ea30c2dcde58 Mon Sep 17 00:00:00 2001 From: "jihwan.seo" Date: Fri, 28 Oct 2016 13:13:03 +0900 Subject: [PATCH] update presence sample app for android. - enable multicast presecne in client - start presence can be triggered for several times after initialize step like createResource(..). - this change is realted to IOT-1468. but it's not resolve patch for that. Change-Id: Ia896b93eb0b10386cfe87969cebd8e2b18531f45 Signed-off-by: jihwan.seo Reviewed-on: https://gerrit.iotivity.org/gerrit/13799 Tested-by: jenkins-iotivity Reviewed-by: Ashok Babu Channa --- .../org/iotivity/base/examples/PresenceClient.java | 9 +++++++++ .../org/iotivity/base/examples/PresenceServer.java | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/android/examples/presenceclient/src/main/java/org/iotivity/base/examples/PresenceClient.java b/android/examples/presenceclient/src/main/java/org/iotivity/base/examples/PresenceClient.java index 8d879e2..d2fad1e 100644 --- a/android/examples/presenceclient/src/main/java/org/iotivity/base/examples/PresenceClient.java +++ b/android/examples/presenceclient/src/main/java/org/iotivity/base/examples/PresenceClient.java @@ -73,6 +73,15 @@ public class PresenceClient extends Activity implements OcPlatform.Configure(platformConfig); try { + msg("Subscribing to multicast presence"); + OcPlatform.subscribePresence(OcPlatform.PRESENCE_URI, + EnumSet.of(OcConnectivityType.CT_DEFAULT), this); + } catch (OcException e) { + Log.e(TAG, e.toString()); + msg("Failed to subscribe to multicast presence"); + } + + try { msg("Finding Resource..."); OcPlatform.findResource("", OcPlatform.WELL_KNOWN_QUERY, EnumSet.of(OcConnectivityType.CT_DEFAULT), this); diff --git a/android/examples/presenceserver/src/main/java/org/iotivity/base/examples/PresenceServer.java b/android/examples/presenceserver/src/main/java/org/iotivity/base/examples/PresenceServer.java index 6be053e..fefd053 100644 --- a/android/examples/presenceserver/src/main/java/org/iotivity/base/examples/PresenceServer.java +++ b/android/examples/presenceserver/src/main/java/org/iotivity/base/examples/PresenceServer.java @@ -48,6 +48,8 @@ import java.util.EnumSet; */ public class PresenceServer extends Activity { private OcResourceHandle mResourceHandle; + private int mPresenceCount = 0; + private final int mMaxCount = 10; private void startPresenceServer() { Context context = this; @@ -80,6 +82,18 @@ public class PresenceServer extends Activity { enableStartStopButton(); } + private void startPresence() + { + try { + msg("Starting presence notifications (" + mPresenceCount + " / " + mMaxCount + ")"); + OcPlatform.startPresence(OcPlatform.DEFAULT_PRESENCE_TTL); + sleep(3); + } catch (OcException e) { + Log.e(TAG, e.toString()); + msg("Error: " + e.toString()); + } + } + /** * This function internally calls registerResource API. */ @@ -145,11 +159,19 @@ public class PresenceServer extends Activity { new Thread(new Runnable() { public void run() { startPresenceServer(); + + mPresenceCount = 0; + while(mPresenceCount++ < mMaxCount) + { + startPresence(); + } + stopPresenceServer(); } }).start(); } else { new Thread(new Runnable() { public void run() { + mPresenceCount = 10; stopPresenceServer(); } }).start(); -- 2.7.4