项目ITP(三) 玩玩 服务端 到 app端

简介:
+关注继续查看

正文 

  上面讲了二维码生成,及 手机端扫一扫,大家有兴趣去看看。

  今天我们讲一下,百度云推送平台。

  每天想着问题,问题只会慢慢的清晰。想着想着,慢慢模式就出来了。

模式

          

                    推送交互模式

  ①② 所指的是学生群体

  ③  所指的是教师

 

  ③ :教师可以基于http 给服务器指示,提示服务器进行操作(push...等);或是直接在web端进行操作

  ① :学生群体接受 push,或是直接查看某些通知,或是直接查看富文本,或是然后点击进行(③步骤)

  ② : 学生基于http 从服务器拉去资料

  ##ps:大家有好的点子 留言

 

百度云推送平台

   百度云推送服务的相关信息,主要包括两部分:

    1. 快速开发使用 Push 服务。

    2. 更多 Push 服务的开发及使用功能。

Android端

  1. 注册百度账号,并成为百度开发者;
  2. 创建应用,获取 API Key 及 Secret Key,请参考查看应用密钥;
  3. 下载应用示例;
  4. 把示例(Android 项目)导入 Eclipse 工程;
  5. 运行示例应用;
  6. 登录管理控制台发送通知;
  7. 手机端接收通知。

 

详细资料:http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/guide

  下面是效果图:

      

      

  #API Key :     应用标识,服务端绑定和推送都要用到
#Secret Key :  应用私钥,服务端推送时用到
#APP ID:     这个id ,就是个id ,虽然也有唯一行,暂时没什么用
#channel ID:  推送通道id,通常对应一台终端。同样的一个app ,装在手机A 和手机B上,channel id是不同的。
#user id :      应用的用户id,同一个用户,可以在不同的终端上拥有同一个app 。user id 和 channel id 配合使用

服务端

  直接上代码吧

package sedion.jeffli.wmuitp.util.baidu;

import com.baidu.yun.channel.auth.ChannelKeyPair;
import com.baidu.yun.channel.client.BaiduChannelClient;
import com.baidu.yun.channel.exception.ChannelClientException;
import com.baidu.yun.channel.exception.ChannelServerException;
import com.baidu.yun.channel.model.PushBroadcastMessageRequest;
import com.baidu.yun.channel.model.PushBroadcastMessageResponse;
import com.baidu.yun.channel.model.PushUnicastMessageRequest;
import com.baidu.yun.channel.model.PushUnicastMessageResponse;
import com.baidu.yun.core.log.YunLogEvent;
import com.baidu.yun.core.log.YunLogHandler;

public class AndroidPushByBaiDuHelper
{
    private static String apiKey     = "xxx";
    private static String secretKey  = "xxx";
    
    /**
     * 初始化
     * @return
     */
    private static BaiduChannelClient initPushClient()
    {
        // 1. 设置developer平台的ApiKey/SecretKey
        ChannelKeyPair pair = new ChannelKeyPair(apiKey, secretKey);

        // 2. 创建BaiduChannelClient对象实例
        BaiduChannelClient channelClient = new BaiduChannelClient(pair);

        // 3. 若要了解交互细节,请注册YunLogHandler类
        channelClient.setChannelLogHandler(new YunLogHandler()
        {
            
            @Override
            public void onHandle(YunLogEvent event) 
            {
                System.out.println(event.getMessage());
            }
        });
        return channelClient;
    }
    
    
    /**
     * 推送广播消息(消息类型为透传,由开发方应用自己来解析消息内容) message_type = 0 (默认为0)
     * @param Content 推送内容
     */
    public static void pushBroadcastMessage(String Content)
    {
        
        BaiduChannelClient channelClient = initPushClient();

        try 
        {

            // 4. 创建请求类对象
            PushBroadcastMessageRequest request = new PushBroadcastMessageRequest();
            request.setDeviceType(3); 
            // device_type => 1: web 2: pc 3:android
            // 4:ios 5:wp

            request.setMessage(Content);

            // 5. 调用pushMessage接口
            PushBroadcastMessageResponse response = channelClient
                    .pushBroadcastMessage(request);

            // 6. 认证推送成功
            System.out.println("push amount : " + response.getSuccessAmount());

        } 
        catch (ChannelClientException e) 
        {
            // 处理客户端错误异常
            e.printStackTrace();
        } 
        catch (ChannelServerException e) 
        {
            // 处理服务端错误异常
            System.out.println(String.format(
                    "request_id: %d, error_code: %d, error_message: %s",
                    e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
        }

    }

    
    /**
     * 推送单播消息(消息类型为透传,由开发方应用自己来解析消息内容) message_type = 0 (默认为0)
     * @param ChannelId    手机端
     * @param content    推送内容
     * @param UserId    手机端
     */
    public static void pushMessageSample(String content, long ChannelId,String UserId)
    {

        BaiduChannelClient channelClient = initPushClient();

        try 
        {

            //创建请求类对象
            // 手机端的ChannelId, 手机端的UserId, 先用1111111111111代替,用户需替换为自己的
            PushUnicastMessageRequest request = new PushUnicastMessageRequest();
            request.setDeviceType(3); // device_type => 1: web 2: pc 3:android
                                      // 4:ios 5:wp
            request.setChannelId(ChannelId);
            request.setUserId(UserId);

            request.setMessage(content);

            // 5. 调用pushMessage接口
            PushUnicastMessageResponse response = channelClient
                    .pushUnicastMessage(request);

            // 6. 认证推送成功
            System.out.println("push amount : " + response.getSuccessAmount());

        } 
        catch (ChannelClientException e) 
        {
            // 处理客户端错误异常
            e.printStackTrace();
        }
        catch (ChannelServerException e)
        {
            // 处理服务端错误异常
            System.out.println(String.format(
                    "request_id: %d, error_code: %d, error_message: %s",
                    e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
        }
    }
    
}

#初始化

#推送广播消息(消息类型为透传,由开发方应用自己来解析消息内容) message_type = 0 (默认为0)

* @param Content 推送内容

# 推送单播消息(消息类型为透传,由开发方应用自己来解析消息内容) message_type = 0 (默认为0)

* @param ChannelId 手机端
* @param content 推送内容
* @param UserId 手机端

总结

  算个工具类吧 没别的。看书咯,加油大家

相关文章
|
1月前
|
UED
在线拍卖竞拍APP系统开发成品项目-具备显著优势
近年来,拍卖直播平台已经成为电商领域备受欢迎的应用之一,它成功地将拍卖和商城功能相结合,使自身在竞争激烈的市场中脱颖而出。然而,如果要开发自己的拍卖直播平台,是否应该选择使用成品项目呢?在本文中,我们将讨论为什么使用成品项目可能是一个明智的选择,并使用“东莞梦幻网络科技”拍卖直播系统成品源码具备的优势。
|
2月前
|
监控 安全 数据可视化
Spring cloud智慧工地源码(项目端+监管端+数据大屏+APP)
一.项目人员管理 包括:信息管理、信息采集、证件管理、考勤管理、考勤明细、工资管理、现场统计、WIFI教育、工种管理、分包商管理、班组管理、项目管理。 1.信息管理:头像、姓名、性别、身份证、进场时间、分包单位、劳务工种、项目履历、是否零工、计价方式、是否班组长、班组名、合同签订日、评价。
147 0
|
2月前
|
传感器 运维 安全
智慧工地平台源码 (PC端+APP端)项目平台、监管平台、数据平台
在设备管理方面,智慧工地可以实现设备的智能化管理和维护。通过物联网和数据分析技术,可以实时监测设备的运行状态和性能,如:塔机、升降机、高支模的运行参数进行实时监测,当检测数据超过预警值时,实时报警并发送云平台。提前发现潜在的故障和问题,并采取相应的维修和保养措施,减少设备故障造成的停工时间和成本损失。
|
3月前
|
Android开发
Android期末项目 新闻APP的设计与实现(二)
Android期末项目 新闻APP的设计与实现(二)
28 0
|
3月前
|
存储 Java API
Android期末项目 新闻APP的设计与实现(一)
Android期末项目 新闻APP的设计与实现
32 0
|
3月前
|
机器学习/深度学习 自然语言处理 小程序
阿里云EMAS-专家测试服务,提供项目兼容性测试,适合APP等项目测试
如何确定自己的APP等项目是否能在阿里云服务器上运行,是很多用户在购买阿里云产品完成业务上云之前比较关心的问题,为此,阿里云提供了EMAS-专家测试服务,一站式移动测试平台,用户只需提交测试需求,即可轻松体验高质量专家团队测试服务。
阿里云EMAS-专家测试服务,提供项目兼容性测试,适合APP等项目测试
|
3月前
|
Java 关系型数据库 MySQL
|
4月前
|
JavaScript 前端开发 开发工具
Vue 项目利用 HBuilderX 打包 APP 流程
Vue 项目利用 HBuilderX 打包 APP 流程
374 3
|
4月前
|
存储 安全 小程序
东郊到家预约APP及小程序系统开发(方案及逻辑)/功能设计/项目逻辑/开发案例/成熟技术/源码程序
 区块链技术还有一个很重要的优势就是可追溯性和不可篡改性。在区块链上进行的每一笔交易都会被记录在区块链上,并且这些交易记录都是透明的,任何人都可以查看
|
4月前
|
新零售 人工智能 大数据
旅游系统开发(APP开发案例)/功能介绍/案例分析/项目方案/源码平台
新零售是指个人、企业以互联网为依托,通过运用大数据、人工智能等先进技术手段并运用心理学知识,A new retail model that upgrades and transforms the production,circulation,and sales processes of goods,reshapes the business structure and ecosystem,and deeply integrates online services,offline experiences,and modern logistics
相关产品
云迁移中心
推荐文章
更多