作者简介

微信公众号(高质量文章推送):陈博易


前言


小米手机选择小米推送的原因:App进程被杀死的情况下,小米手机上的小米推送服务并不会被杀死(除非用户手动在设置中关闭了该推送的权限),所以我选择给大家分享下小米推送。
这里参考了一篇大佬的文章:http://www.jianshu.com/p/d77eaca4e52a

环境以及工具


环境:Android AndroidStudio3.0 Java项目:IntelliJ IDEA 2017.2.3

整体步骤


  1. 在小米开发者站开通小米开发者账号
  2. 启用推送服务
  3. 下载SDK、文档和DEMO
  4. SDK集成和调试

详细步骤


请参考小米官网
https://dev.mi.com/doc/?p=1621

核心步骤解读


  1. 创建一个小米开发推送调式应用

  1. 修改APP_ID、APP_KEY、包名(应用核心数据)

参考小米官网文档:
https://dev.mi.com/console/doc/detail?pId=41
3. 小米官网推送

  1. java后端核心步骤
    参考文档:
    java后端环境集成 https://dev.mi.com/mipush/docs/server-sdk/introduction/
    java后端开发文档说明 https://dev.mi.com/console/doc/detail?pId=40
public class mipushtest {public static void main(String[] args) {Constants.useOfficial();Sender sender = new Sender("hYsI0lYsM+9lpgjyBV1gig==");//申请到的AppSecretString messagePayload = "This is a message(一般这里都是json字符串)";String title = "notification title(通知标题)";String description = "notification description(通知简介)";Message message = new Message.Builder().title(title).description(description).payload(messagePayload).restrictedPackageName("com.xiaomi.mipushdemoboy").passThrough(0)     // 设置消息是否通过透传的方式至App, 1表示透传消息, 0表示通知栏消息(默认是通知栏消息).notifyType(-1)      // 设置通知类型, type类型(-1, 1-使用默认提示音提示, 2-使用默认震动提示, 3-使用默认led灯光提示).build();try {//registrationId regId是app在客户端向小米推送服务注册时,// 小米推送服务端根据设备标识和appId以及当前时间戳生成,// 因此能够保证每个设备上每个app对应的regId都是不同的,// 可以作为每台设备上app的唯一标识// 注:需要开发者自己的服务器接收客户端返回的regid并存储在自身服务器// retries代表发送失败后重试的次数sender.send(message, "7iuW9yVMV+s61aG1AVD7rXC+LHNs561t/rcAL1a3v84=", 1); //发送消息到一组设备上, regids个数不得超过1000个//发送给所有的注册成功的应用//sender.broadcastAll(message, 1); //} catch (IOException e) {e.printStackTrace();} catch (ParseException e) {e.printStackTrace();}}}
  1. Android核心代码介绍
public class DemoMessageReceiver extends PushMessageReceiver {private String mRegId;//每台设备上app的唯一标识,为了方便测试将返回的regid记录下来,方便在后端的推送//方法用来接收服务器向客户端发送的透传消息。@Overridepublic void onReceivePassThroughMessage(Context context, MiPushMessage message) {}//用来接收服务器向客户端发送的通知消息,这个回调方法是在通知消息到达客户端时触发。// 另外应用在前台时不弹出通知的通知消息到达客户端也会触发这个回调函数。@Overridepublic void onNotificationMessageArrived(Context context, MiPushMessage message) {}//方法用来接收服务器向客户端发送的通知消息,这个回调方法会在用户手动点击通知后触发@Overridepublic void onNotificationMessageClicked(Context context, MiPushMessage message) {}//方法用来接收客户端向服务器发送命令后的响应结果。@Overridepublic void onCommandResult(Context context, MiPushCommandMessage message) {}//方法用来接收客户端向服务器发送注册命令后的响应结果。@Overridepublic void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {}

总结


  1. 如何导入java项目(无脑next就好)
    http://www.jianshu.com/writer#/notebooks/6994156/notes/19328068

总算把android的环境和java后端环境都调试通了,如果大家还不懂的可以私聊我哦。

请关注我(高质量文章推送)

源码地址———关注微信公众号,回复:小米推送源码


小米杀不死的消息推送-- Android、java后端同时接入小米推送相关推荐

  1. 友盟推送android 8.0系统不显示推送消息问题

    android各版本对应的api情况,而android8.0以及之后的版本,notifycation为了更安全,又增加了channel的写法,代码如下 if (Build.VERSION.SDK_IN ...

  2. 阿里-消息推送java后端,设备方式推送

    消息推送 移动推送(Mobile Push)是提供给移动开发者的移动端消息推送服务,通过在App中集成推送功能,进行高效.精准.实时的消息推送,从而使业务及时触达用户,提高用户粘性. 一:导入jar包 ...

  3. 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式

    转载自 https://www.cnblogs.com/V1haoge/p/6439313.html 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge ...

  4. 小米推送java_idea + springboot 的java后台服务器通过小米推送

    public class XiaomiPush { // 1.小米推送(我只推送Android且只应用regId发起推送,所以下面只有推送Android的代码 private static final ...

  5. VIVO推送接入 OPPO推送接入 客户端+服务端

    老生常谈,推送接入已经不是什么难事,跟着文档走几小时就能搞定.不过我这里还是要记录一下,因为我在接入的时候还是有坑.希望这篇文章可以帮到你. VVIO客户端 厂商推送,无非就是收到推送拉起通知.所以在 ...

  6. android与苹果 推送,科普下安卓和苹果的推送区别

    看到很多人说苹果推送比安卓好太多,安卓关掉app就没法收到推送消息,作为从业者,来给大家科普下安卓和苹果的推送区别. 首先上苹果推送的整体流程图 简单描述一下,开发者先接入苹果推送服务,有消息需要推送 ...

  7. 华为手机点击android棒棒,Android 推送点击跳转与华为推送神坑

    实现Android推送功能,选择了接入华为推送和小米推送,结果步入了华为推送的一个神坑

  8. Android消息推送:手把手教你集成小米推送

    <script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.j ...

  9. android 杀死程序收不到推送_Android APP切换到后台接收不到推送消息

    1.   Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 android原生系统用home键杀进程可以起来,如果是强行停止就只能用户自己手动 ...

最新文章

  1. catia今天突然打不开了_苹果手机锁屏密码突然不正确了?不要慌!也先不要着急刷机!!!尝试一下以下方式!...
  2. class 第一个元素_第二章(第3节):网页元素定位和操作
  3. 理解T-SQL:高级查询
  4. VBA and Access
  5. 小点点软件对你非常实用
  6. leetcode-453-Minimum Moves to Equal Array Elements
  7. Windows Azure 云服务角色架构
  8. matlab:lena图像在空域和频域的均匀滤波
  9. R语言 循环 步长 写法
  10. jersey 过滤_Jersey 开发RESTful(十五) Jersey的拦截器
  11. 清华梦的粉碎—写给清华大学的退学申请 /王垠
  12. vue 运行启动命令_如何使用Vue启动和运行
  13. 学术报告PPT的latex模板
  14. OCR文字识别 少数民族文字识别 国外文字识别
  15. 被“投机之王”奉为交易核心的时间要素到底是什么?
  16. Ubuntu下Qt软件打包流程
  17. 决策树的预剪枝与后剪枝
  18. 如何防止自己的电脑成为肉鸡?
  19. 又爆作弊丑闻?AAAI 2023审稿人被作者找上门,才发现rebuttal阶段审稿人互相可见!...
  20. 360网站卫士 PHP-DOS攻击脚本专杀工具使用笔记

热门文章

  1. 基于RT-Thread的两轮平衡小车设计
  2. 2022-2028全球与中国长曲棍球装备市场现状及未来发展趋势
  3. 新手上路有哪些开车技巧 , 很实用!
  4. VUE|利用父子组件制作弹出框
  5. 学计算机用多大的u盘合适,装w764位系统需要多大u盘呢?
  6. C语言自动出十题四则运算,c语言四则运算出题器
  7. 梁漱溟:做学问的八层境界
  8. 旋钮编码器c代码_旋转编码器EC11驱动
  9. 物联网工程应用设计---楼宇消防控制系统
  10. 谈我所经历的区块链历程