Yunba Android SDK 快速入门
注册开发者账号
Section titled “注册开发者账号”打开 云巴官方网站,点击注册创建账号。

注册账号成功跳转到我的应用界面,点击“创建应用”,输入应用名称和包名(包名为 Java 标准包名规范)。

下载 Android SDK
Section titled “下载 Android SDK”打开 云巴开发者页面 下载 Android SDK, Android SDK 包含 DEMO 程序和开发者所需嵌入的 jar 包。
导入 Android SDK
Section titled “导入 Android SDK”下载的 yunba-sdk-release.jar 包放到项目的 libs 目录下。

开发工具为 Android Studio 的 Android SDK 导入步骤可参考 Demo 运行文档。
配置 AndroidManifest.xml
Section titled “配置 AndroidManifest.xml”<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!-- 位置相关权限,不是必须添加 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />配置应用的 AppKey(AppKey 来自 Portal,与包名对应)
Section titled “配置应用的 AppKey(AppKey 来自 Portal,与包名对应)”AppKey 来自 YunBa 注册的应用,与包名对应。

添加 Appkey
在<application>......</application>中加入
<meta-data android:name="YUNBA_APPKEY" android:value="Your Appkey" />修改应用包名称
Section titled “修改应用包名称”在 AndroidManifest.xml 中根据 YunBa Portal 注册应用的包名替换 “Your PackageName”, 友情提示:一共有两处需要修改。
添加 Service
Section titled “添加 Service”添加 YunBaService,YunBa SDK 会启动一个后台的 service。
添加 YunBaService
在<application...> ... </application>标签内加入以下Service
<service android:name="io.yunba.android.core.YunBaService"> </service>添加 Receiver
Section titled “添加 Receiver”同样地,在<application...> ... </application>内添加 YunBaReceiver, 用来监听网络变化等事件,确保网络切换时能重新建立长连接。
<receiver android:name="io.yunba.android.core.YunBaReceiver"> <intent-filter> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter></receiver>添加使用代码
Section titled “添加使用代码”初始化 SDK 并订阅 Topic,请在您的 Application 子类的 OnCreate 方法中加入如下代码:
public class YourApp extends Application {
public void onCreate() {
super.onCreate(); YunBaManager.start(getApplicationContext());
YunBaManager.subscribe(getApplicationContext(), new String[]{"t1"}, new IMqttActionListener() {
@Override public void onSuccess(IMqttToken arg0) { Log.d(TAG, "Subscribe topic succeed"); }
@Override public void onFailure(IMqttToken arg0, Throwable arg1) { Log.d(TAG, "Subscribe topic failed" ; } });
}}自定义 Receiver 接收 Publish 消息
Section titled “自定义 Receiver 接收 Publish 消息”YunBa 系统 Publish 的消息会通过广播的形式传递给 App, App 通过监听相关的 Action 接收消息并处理。
自定义 Receiver 在 AndroidManifest.xml 的配置
Section titled “自定义 Receiver 在 AndroidManifest.xml 的配置”自定义 Receiver 接收 Publish 消息, Package Name 为当前应用程序的包名。
<receiver android:name="Your Receiver"> <intent-filter> <action android:name="io.yunba.android.MESSAGE_RECEIVED_ACTION" /> <category android:name="Package Name" /> </intent-filter> </receiver>自定义 Receiver 处理 Publish 消息代码示例
Section titled “自定义 Receiver 处理 Publish 消息代码示例”自定义 Receiver 处理 Publish 消息
if (YunBaManager.MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
String topic = intent.getStringExtra(YunBaManager.MQTT_TOPIC); String msg = intent.getStringExtra(YunBaManager.MQTT_MSG);
//在这里处理从服务器发布下来的消息, 比如显示通知栏, 打开 Activity 等等 StringBuilder showMsg = new StringBuilder(); showMsg.append("Received message from server: ") .append(YunBaManager.MQTT_TOPIC) .append(" = ") .append(topic) .append(" ") .append(YunBaManager.MQTT_MSG) .append(" = ")\
.append(msg); DemoUtil.showNotifation(context, topic, msg); }重新编译文件
Section titled “重新编译文件”在 Eclipse 中重新编译项目生成新的 R 文件,在MainActivity,DemoUtil,APIActivity,YunBaTabActivity 重新导入 R 文件。


运行 yunba-demo 程序(Run as Android application), 如果 yunba-demo 程序出现 Connected 的日志表示连接成功。
可能遇到的问题:
运行程序的过程中可能会出现 requires API level 10 (current min is 8) 的问题。只需要修改 AndroidManifest.xml 中的标签 <uses-sdk> 如下:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14" />程序运行主界面
Section titled “程序运行主界面”
API 接口界面展示
Section titled “API 接口界面展示”
在 Portal 上发布消息
Section titled “在 Portal 上发布消息”客户端集成 YunBa SDK 后,打开 Portal 上的应用详情页面,输入频道名称和消息内容,点击 “发送”,订阅该频道的客户端即可收到消息,如图所示:

在 Portal 查看消息发布实时报表
Section titled “在 Portal 查看消息发布实时报表”打开应用详情页面,点击 “发布上报统计” 可以查看消息发布 实时送达比,如图所示:

在 Portal 查看用户在线信息实时报表
Section titled “在 Portal 查看用户在线信息实时报表”打开应用详情页面,点击 “在线用户统计” 可以查看当前在线用户数,用户活跃数等信息,如图所示:

注:
Portal 的详细使用可参考 Portal 文档。