安卓学习笔记5——个推透传服务体验

参考工程:点击打开链接

1.引子

在上一篇中我们讲到如何使app能够接收个推推送信息。但是这样的推送信息只能够在通知栏显示,而不能被我们应用本身使用,所以在这一篇中我们继续讲接收能够被我们应用所利用的推送信息。也就是个推所说的透传信息。


2.使用步骤

以下步骤在上一篇配置好个推的基础上进行,具体可以查看安卓学习笔记4——推送服务初体验

为了能够接收透传信息,我们需要使用broadcast Receiver类,广播类可以动态注册或者在xml文件中静态注册,为了能够让broadcast receiver 能够对activity中的控件进行注册。我们选择在activity动态定义和注册broadcast receiver类。


步骤一:

定义常量: 个推透传信息的广播类型。

	private static final String ACTIONNAME_STRING="com.igexin.sdk.action.你应用的appid";

步骤二:

	private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
		
		@Override
		public void onReceive(Context context, Intent intent) {

				Bundle bundle = intent.getExtras();

				Log.d("GexinSdkDemo", "onReceive() action=" + bundle.getInt("action"));
				switch (bundle.getInt(Consts.CMD_ACTION)) {
					case Consts.GET_MSG_DATA:
						// 获取透传(payload)数据
						byte[] payload = bundle.getByteArray("payload");

						if (payload != null)
						{
							data = new String(payload);
							
							Log.d("GexinSdkDemo", "Got Payload:" + data);
							editor.putString("IP", data);
							editor.commit();
							IP.setText(data);
						}
						break;
					case Consts.GET_CLIENTID:
						// 获取ClientID(CID)
						String cid = bundle.getString("clientid");
						Log.d("GexinSdkDemo", "Got ClientID:" + cid);
						// TODO: 
						/* 第三方应用需要将ClientID上传到第三方服务器,并且将当前用户帐号和ClientID进行关联,以便以后通过用户帐号查找ClientID进行消息推送
						有些情况下ClientID可能会发生变化,为保证获取最新的ClientID,请应用程序在每次获取ClientID广播后,都能进行一次关联绑定 */

						break;
					default:
						break;
				}

			}
			
		};

步骤三:在oncreate中注册broadcast receiver类

		IntentFilter intentFilter = new IntentFilter();
		intentFilter.addAction(ACTIONNAME_STRING);
		registerReceiver(broadcastReceiver, intentFilter);

步骤四:别忘了对个推sdk的初始化,详情见安卓开发笔记4


3.总结

到这里我们就能够使用broadcast receiver类接受透传消息,并在receiver中对透传消息进行处理。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值