android 极光推送测试,Android 3分钟带你集成极光推送
话不多说 首先申请极光的账号,(官方地址:https://www.jiguang.cn)
1561710140829.png
登录完成之后,先看到这个地方 ,我个人比较喜欢用旧版本,这里点击旧版
1561710235064.png
点击这个创建应用
1561710626969.png
注意这个地方应用名称是必填项,图标是选填,这里我就只填一个应用名称(这里的名称就是Mainface里面的app_name)
1561710724862.png
1561710743741.png
填入名字之后 点击创建我的应用(这里我没试过名字不一样是否可以成功推送,个人觉得没必要做这种尝试)
1561710852958.png
看到创建成功字样后点击完成推送配置:
里面有Android IOS 和win 这里我只演示Android
1561711022205.png
取项目中app目录下的build.gradle文件中的applicationId 对应的值(一般在集成三方库的时候用到包名的,我们都认为这个applicationId 是应用程序的包名),将这个包名复制粘贴到以下页面的选项中并点击保存:
1561711265137.png
点击 下载Demo,把Demo解压到一个文件中如下:
1561711547102.png
很多博客写到这里都是说把解压之的文件以module的方式引入到项目中,经过我自己的测试我发现这样是行不通的,因为极光提供的这个Demo其实是一个eclipse项目,所以在AS上跑是有问题的,经过阅读官方文档和自己的摸索,发现其实这里面有用的就上面标记的两个地方,src里面存放了一些极光为我们生成的一套收消息的类,Mainface里面为我们配置了一些权限信息和其他的东西,这里首先需要按照官方文档配置APP目录下的build.gradle文件:
1561714344089.png
回到首页查看极光推送的文档(这里我只截取build.gradle里面的配置信息):
1561714447363.png
这一这个里面有个JPUSH_APPKEY:需要填入刚刚申请后的APPkey:
1561715348319.png
AS执行以下 Sync Now 以便于下载极光的包
以下都是权限 没什么好说的
这里主要是要查看Mainface里面的配置信息,备注信息很清楚,这里我就做过多赘述了:
//参照集成文档中来的文档中
package="com.yhb.pushdemo">
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:name="cn.jpush.android.ui.PopWinActivity"
android:theme="@style/MyDialogStyle"
android:exported="false">
android:name="cn.jpush.android.ui.PushActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar"
android:exported="false">
android:name="cn.jpush.android.service.PushService"
android:process=":pushcore"
android:exported="false">
android:authorities="com.yhb.pushdemo.DataProvider"
android:name="cn.jpush.android.service.DataProvider"
android:process=":pushcore"
android:exported="false"
/>
android:name="cn.jpush.android.service.DaemonService"
android:enabled="true"
android:exported="true">
android:authorities="com.yhb.pushdemo.DownloadProvider"
android:name="cn.jpush.android.service.DownloadProvider"
android:exported="true"
/>
android:name="cn.jpush.android.service.PushReceiver"
android:enabled="true"
android:exported="false">
android:name="cn.jpush.android.service.JNotifyActivity"
android:exported="true"
android:taskAffinity="jpush.custom"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
android:process=":pushcore">
android:name="com.example.jpushdemo.MyReceiver"
android:exported="false"
android:enabled="true">
复制上去之后,会有以下几处报错,这几处报错只需要把src下面对应的类拷贝过来,然后修改Mainface里面的路径名即可
image.png
image.png
image.png
image.png
新增完后的项目目录:
image.png
可看到还有两个类报错,这个时候,看看一看里面需要的东西,差什么拷贝什么
最后剩下一个MainActivity里面需要添加东西,这里我直接拷贝过来
package com.yhb.pushdemo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
public static boolean isForeground = false;
private MessageReceiver mMessageReceiver;
public static final String MESSAGE_RECEIVED_ACTION = "com.example.jpushdemo.MESSAGE_RECEIVED_ACTION";
public static final String KEY_TITLE = "title";
public static final String KEY_MESSAGE = "message";
public static final String KEY_EXTRAS = "extras";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void registerMessageReceiver() {
mMessageReceiver = new MessageReceiver();
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MESSAGE_RECEIVED_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
}
public class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
String messge = intent.getStringExtra(KEY_MESSAGE);
String extras = intent.getStringExtra(KEY_EXTRAS);
StringBuilder showMsg = new StringBuilder();
showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
if (!ExampleUtil.isEmpty(extras)) {
showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
}
Toast.makeText(context, showMsg.toString(), Toast.LENGTH_SHORT).show();
}
} catch (Exception e){
}
}
}
@Override
protected void onResume() {
isForeground = true;
super.onResume();
}
@Override
protected void onPause() {
isForeground = false;
super.onPause();
}
}
最后一步,初始化极光推送:
package com.yhb.pushdemo;
import android.app.Application;
import cn.jpush.android.api.JPushInterface;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
在Mainface中新增如下代码:
image.png
这个时候在AndroidStudio中Rebuild一下,然后安装app到手机上,注意这里最好使用真机(楼主使用的真机测试,不知道模拟器是否可以)
这个时候我们就可以开始在极光后台给我们的手机推送数据了
推送数据第一步:
image.png
注意这个列表10分钟刷新一次,所有有时候我们看到的用户数不对,是因为没有及时刷新,所以不必担心
在这个页面点击相应的应用,这里我点击极光测试用例然后进入:
image.png
点击这里的 “推送” 然后进入:
image.png
可以看到当前这个页面中的推送历史是什么都没有的,然后点击这里 “发送通知” 进入发送通知页面
左边是发送的测试信息,右边是接收的平台,我这里是Android
(注意:如果右边这个方框里面没有如图显示)
image.png
或者以下这四个按钮不可选的时候,,说明在前面配置极光的时候少了一步
image.png
如果右边的手机没有出现,或者是方框内什么都没有,亦或是以上四个目标平台不可选的时候,那么大概率是缺少以下配置:(方框内有显示的,可以忽略此步骤)
1561710852958.png
如果没问题,选择对应的平台,我这里选择Android(选择的平台需要在推送配置里面配置好之后,才可以在这里选择你想要推送的平台)
以下目标人群和发送时间我这边都是默认的,这里需要注意的是 这个立即发送按钮,如果显示是蓝色的,说明上面的信息都没有问题,否则你需要再次检查上面需要填写的内容
image.png
点击立即发送,在手机上看到如下效果,说明推送已经集成成功
image.png
还可以在极光的控制台看到详细的数据如下,也说明推送集成成功,一般情况下两种都可以看到:
image.png
至此,推送的demo就完全集成完了,小伙伴们可以根据自己的业务在之前copy的接收器和TestActivity里面做自己的业务逻辑了,当然 我这里实现的只是最简单的推送逻辑,更多详细内容请查看官方集成文档。
如有问题,可以在下方给博主留言哦,博主也是一位菜鸡,希望各位大佬不喜轻喷,在这里先行谢谢各位!
android 极光推送测试,Android 3分钟带你集成极光推送相关推荐
- 三分钟帮你集成极光推送——和那些可能你不知道的事
本文简介:本文前篇,可以帮助朋友们快速集成极光推送.本文后篇,是我自己项目实践的一些总结和心得,应该对读者们还是很有参考价值的,相信读完这篇文章,你会对极光推送有更加深入的理解,而不仅仅只是会集成而已 ...
- android华为推送不显示角标,V6项目集成华为推送流程和角标显示处理
(一) 集成资料 3.华为官方QQ群:662059980 (二) V6项目集成步骤和代码说明 1.华为官网申请PUSH服务: 1.1申请 点击申请按钮进行申请 1.2提交应用信息 填写应用信息后提交 ...
- android studio如何编译测试,Android Studio 进行单元测试完整教程
前言 为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作. 我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿. 我的AndroidStudio 我的An ...
- android遥控器用什么测试,Android编程调用红外线遥控功能示例
本文实例讲述了Android编程调用红外线遥控功能.分享给大家供大家参考,具体如下: Android API Demos中有红外线遥控的小例子,在网上找了很久相关的资料,发现比较少,或许找的方法不对. ...
- android 的弱网测试,Android APP弱网测试问题和解决分析
最近做了一次移动APP的弱网和中断测试,接下来分享一下遇到的一些问题: 1.现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致. 原因 ...
- android 丢包率测试,android 下测试网络的丢包率和延迟
昨天做网络延迟和丢包率,以前没弄过,网上寻找也没找到什么有效的,弄了一下午搞定了,代码如下,希望对大家有帮助,写的不好,还请大家批评指正 String lost = new String(); Str ...
- 集成极光推送的一点说明
http://blog.csdn.net/wwj_748/article/details/41867467 关于推送服务,国内有很多选择,笔者也对它们进行了一个详细的对比,一般我们产品选择推送服务主要 ...
- android实现左拉菜单,Android原生侧滑控件DrawerLayout使用方法详解
在android的v4包中有一个控件 Drawerlayout,主要实现了左拉和右拉菜单,类似于之前的"抽屉"功能,此控件使用简单,效果很柔和,操作起来体验非常好,下面是我实现的一 ...
- Android集成极光推送踩坑(二)升级篇
转载请标明出处 http://blog.csdn.net/mohan6/article/details/74133186 本文作者:[默寒的博客] 前言 前段时间针对集成极光推送写了篇文章( Andr ...
最新文章
- AI一分钟 | 刚爆Python将进入高考,AI就已强势进入公务员国考试卷;报告称1/4男性更喜欢跟机器人谈恋爱,真的吗?
- 如何使用iPad移动办公
- 动态规划经典题目_动态规划经典题目:鸡蛋掉落(附视频讲解)
- Linux上 MongoDB 实现远程连接并设置账号密码
- 使用 JNA 模拟C语言结构体的完整源代码
- fiddler 改成中文版的_fiddler中文版
- K210车牌归属地识别[获取图像+训练+识别效果演示]
- 数字图像处理课程作业1-大米检测
- 评测|抢鲜体验飞凌Linux版LS1028A系列嵌入式开发板
- light动名词_英语中什么叫动名词?加ING的就是吗?
- 【深度学习】(10) 自定义学习率衰减策略(指数、分段、余弦),附TensorFlow完整代码
- Altium Designer中如何实现元件Designator自动编号
- Mathematica13.1的安装与使用配置
- Android 打开系统蓝牙设置
- shell编程之sort、uniq、tr
- 【epoll函数】epoll_create、epoll_ctl、epoll_wait
- 狂神说,mybatis-01 java.lang.ExceptionInInitializerError at com.kuang.dao.UserDaoTest.selectUser(UserD
- C Primer Plus编程题-第五章 运算符、表达式和语句
- 数学奥赛VS信息学奥赛(2022.07.19)
- 百度商业系统大规模微服务分布式监控实践
热门文章
- Kitten编程猫的工程文件 bcm,能发布成Android平台的apk文件吗
- SAP WebClient UI开发工具中attribute文件夹展开的实现原理分析
- Java Spring里com.mysql.jdbc.Driver的加载时机
- 什么是SAP HANA Database Procedure(数据库过程)
- SAP C4C Embedded Component里Lead ID和Lead TI页面的关系
- SAP CRM Fiori应用My Lead的常见问题和解答
- 一个免费调用的OData服务,无需用户名密码,适用于SAP UI5的学习
- OPA 3 - thirdParty Qunit.js and IFrame load logic
- SAP UI5 jQuery.sap.formatMessage
- CRMM_PR_MAST cannot activate