PubNub hereNow方法没有返回预期的uuids列表

时间:2016-01-03 14:54:30

标签: java android pubnub

我在Android应用程序中使用PUBNUB api

我正在设置这样的uuid

mPubnub.setUUID("customName");

在用户应用程序中

并且在客户端应用程序中我正在调用herenow方法内部存在回调

mPubnub.hereNow("Svnchannel", hereNowCallback);

但是我收到了像这样的错误列表

"uuids":["80e3b23f-bad1-4b48-8e89-61c234400d25","50b5c464-cda7-49b8-8ab6-a84ec5de42a1","0465c47b-c03b-4c86-91c4-60ea7267f467"]}

我期待的是这样的

"uuids":["customName1","customName2","customName3"]}

我做错了什么?请帮忙

1 个答案:

答案 0 :(得分:1)

使用PubNub Android SDK设置和重用UUID

在实例化Pubnub对象之后和订阅之前,需要设置setUUID(String uuid)。这是此代码的简短版本:

Pubnub pubnub = new Pubnub("<your_pub_key>", "<your_sub_key>");
pubnub.setUUID("1234-5678-9ABC-DEFG-HIJK");

最好在设备上缓存此UUID,以便在每次实例化Pubnub对象时重复使用它。或者,您可以在登录服务器后从数据库中的用户配置文件记录中获取用户的UUID。

这是一个更完整的解决方案,用于生成/缓存/设置/重用UUID。此代码可能需要进行一些改进/更新。

// creating the Pubnub connection object with minimal args
Pubnub pubnub = new Pubnub("<your_pub_key>", "<your_sub_key>");

// get the SharedPreferences object using private mode 
// so that this uuid is only used/updated by this app SharedPreferences
sharedPrefs = getActivity().getPreferences(Context.MODE_PRIVATE);

// get the current pn_uuid value (first time, it will be null)
String uuid = getResources().getString(R.string.pn_uuid);

// if uuid hasn’t been created/ persisted, then create
// and persist to use for subsequent app loads/connections 
if (uuid == null || uuid.length == 0) {
    // PubNub provides a uuid generator method but you could 
    // use your own custom uuid, if required
    uuid = pubnub.uuid();
    SharedPreferences.Editor editor = sharedPrefs.edit();    
    editor.putString(getString(R.string.pn_uuid), uuid);
    editor.commit();
}

// set the uuid for the pubnub object
pubnub.setUUID(uuid);

您应该为每个设备使用不同的UUID。