版本支持
修改AndroidManifest.xml
添加权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
添加组件
<service android:name="com.cobub.toaster.push.component.PushService"> <intent-filter> <action android:name="com.cobub.toaster.push.SYNC" /> </intent-filter> </service> <receiver android:name="com.cobub.toaster.push.component.CPushReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
添加代码
在APP启动以后尽早调用:
CPushInterface.initPushService(Context ctx, String UID, String host, int port);
初始化
CPushInterface.initPushService(Context ctx, String UID, String host, int port);
ctx:上下文参数 UID:必须传入UID host:推送服务器绑定的域名或IP地址 port:推送服务器绑定的端口
设置Channel
此方法为终端设备设定TAG值
CPushInterface.setChannel(Context ctx, String channelName);
ctx:上下文参数 channelName:channel的值,这里即为为终端设置TAG,例如“location:Beijing”
已阅反馈
向推送服务器PNS报告通知栏消息已被点击。
CPushInterface.sendReadFeedback(Context context, String mid, String expired);
ctx:上下文参数 mid:推送消息中的mid expired:推送消息中的expired时间
接收推送
透传消息采用Broadcast传递,需要自定义一个BroadcastReceiver来接收,Receiver需要过滤自身app包名(package)的action,否则无法收到消息,如下内容需加入menifest:
<receiver android:name="com.cobub.toaster.push.TestReceiver" android:permission="com.cobub.toaster.push"> <intent-filter > <action android:name="com.cobub.toaster.push"/> </intent-filter> </receiver>
从推送服务器推送到手机的消息包含如下内容:
mid:“XXXXXX” data:“XXXXXX” expired:“XXXXXX” channel:“XXXXXXXX”
在Receiver中可以通过以下方式取出字段:
String msg = intent.getStringExtra("data"); String expired = intent.getStringExtra("expired"); String mid = intent.getStringExtra("mid");
可根据需要调用已阅反馈接口。