Android 接入 PubNubSDK 推送

本文档介绍了如何在Android应用中添加权限并接入PubNub SDK,以实现网络状态监测和实时消息推送功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我发现 现在做的 除了个别事情,其他都是为了项目需求做的。 有没有好可怕。。。

嗯 PubNubSDK 也是为了海外 推送做的。

PubNubSDK 推送是海外一款 算是免费中不错的提送SDK吧(免费的肯定是受限制的,比如推送的字符长度,每天或者每个帐号推送的消息数量等等)

那先说怎么集成进去的把,
去官网注册帐号(注册的时候需要翻墙)
注册之后
可以 created new app
然后根据步骤走就好了。

需要在官网准备的东西(都可以在上面的官网下载到的)

1. 先下载 PubNubSDK jar文件

2. 下载代码资源(这里根据你选进来的是 IOS ,Android 来的)

3. 下载 jar 包后放在 libs 目录下,eclipse 刷新 然后自动导入jar,
需要在android 的 AndroidManifest.xml 文件中配置权限
  • <uses-permission android:name="android.permission.INTERNET" />
  • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

4. 初始化 SDK
//配置
PNConfiguration pnConfiguration = new PNConfiguration();
    pnConfiguration.setSubscribeKey( "注册的时候看自己的注册的app里面会有" );
    pnConfiguration.setPublishKey( "注册的时候看自己的注册的app里面会有" );
pnConfiguration.setSecure( false );//设置开发模式
//初始化
PubNub pubnub = new PubNub(pnConfiguration);

//监听 abcd1234发来的消息
pubnub.subscribe().channels(Arrays.asList( "abcd1234" )).execute();


//添加监听
pubnub.addListener( m SubscribeCallback)

SubscribeCallback m SubscribeCallback = new SubscribeCallback(){

//状态
@Override
    public void status(PubNub pubnub, PNStatus status) {
if (status.getCategory() == PNStatusCategory.PNConnectedCategory)
{

//注册了一个 abcd1234 的消息,设置的message 为 hello!!
//需要注册一个回调 连接的状态是否成功
pubnub.publish().channel( "abcd1234" ).message( "hello!!" ).async( new PNCallback<PNPublishResult>() {
@Override
                         public void onResponse(PNPublishResult result, PNStatus status) {
                // Check whether request successfully completed or not.
                             if (!status.isError()) {
 
             // Message successfully published to specified channel.
                             }
              // Request processing failed.
                             else {
 
// Handle message publish error. Check 'category' property to find out possible issue
                                 // because of which request did fail.
                                 //
            // Request can be resent using: [status retry];
                             }
                         }
});
}
}

//如果收到消息就会到 message这里
@Override
    public void message(PubNub pubnub, PNMessageResult message) {
// Handle new message stored in message.message
             if (message.getChannel() != null ) {
                 // Message has been received on channel group stored in
                 // message.getChannel()
             }
             else {
                 // Message has been received on channel stored in
                 // message.getSubscription()
             }
 
             /*
                 log the following items with your favorite logger
                     - message.getMessage()
                     - message.getSubscription()
                     - message.getTimetoken()
             */
}

@Override
    public void presence(PubNub pubnub, PNPresenceEventResult presence)
{
    }
}

然后在app销毁的时候 需要调用

pubnub.destroy();

------------------------------分割线-----------------------------------

以上就是个简单的 PubNub 接入方法


上面是客户端自己发送自己接收的。
然而 我们需要的是服务器 传送过来,客户端接收

那么客户端需要和服务器定好channel(也就是上面的abcd1234)

客户端只需要监听 这个 channel ,服务器 只需要负责发送这个 channel 的消息。

PS 如果是全部推送,可以把 channel 定义好,如果是 需要单个的推送,某些可以看见。那么需要拿到这个用户的 唯一标识(如:device id)

其官网介绍的很详细,而且有 API 所以,以上只是提供了简单的接入,如果要更多的功能可以去官网 瞄几眼。得意


最后 我想问问 大家 有没有用过海外 比较靠谱的推送啊 求介绍啊哈哈哈哈(支持离线推送的是最好了) thx微笑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值