android菜鸟练手小项目之自定义日历,涵盖LitePal数据库,极光推送(二)

来源:互联网 发布:呼不停软件 编辑:程序博客网 时间:2024/05/21 17:36

接着上一篇的日历控件咱们继续聊,这一部分我们来集成极光推送。首先我们得有极光的账号,没有的同学可以去极光官网注册https://www.jiguang.cn/,然后可以去看集成指南,其实还是比较简单的,


看下注册之后的页面上应该注意的地方,首先新建一个项目,项目名称随意命名


进入项目的----“设置”


继续进入推送设置



Android SDK 集成指南 - 极光文档 http://docs.jiguang.cn/jpush/client/Android/android_guide/

注册好之后就开始按照文档一步步集成了

下图红色方框才是我们应该关注的部分,除非你想深入学习了解极光,一般情况下集成进来就够用了,不过如果是真实的项目开发的话还是应该深入了解,避免踩坑!!!



看下我按照文档写的内容进行的配置


基本上按照文档,添加到相应的位置就可以了,两个个要注意的地方

1.将JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.

2.统计渠道名称中我填入的是空字符串,暂时没有对外发布的渠道,只是做测试用。


好了,极光已经集成好了,下面配置下我们的应用,按照极光文档的要求来一步一步设置。


我们需要新建一个Application,然后调用极光的初始化代码init()

public class MyApp extends Application {    @Override    public void onCreate() {        super.onCreate();        JPushInterface.setDebugMode(true);        JPushInterface.init(this);    }}
记住,该Application一定要在Manifest中进行配置,
android:name=".MyApp"


来看下最终的效果如何,首先编辑消息(选择发送通知,其他的暂时看不到效果的),选择立即发送,切换到模拟器或者调试的手机查看效果



——————————————————下面的是讲自定义消息处理的部分——————————————————


我们集成了极光之后,还只能发布通知(Notification),自定义消息还不能发送(至少手机端没有响应??),是不是真的没推送呢,其实极光已经推送给了手机端,只是手机端没有进行相应的解析和响应而已。下面我们来自定义接收广播进行消息处理。仍然按照文档来学习






按照文档说明,我们自定义一个广播来处理消息,可以直接复制代码了

首先在Manifest.xml中注册自定义的广播接收器

<receiver    android:name=".receiver.MyJPushReceiver"    android:enabled="true">    <intent-filter>        <!--Required 用户注册SDK的intent-->        <action android:name="cn.jpush.android.intent.REGISTRATION" />        <!--Required 用户接收SDK消息的intent-->        <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />        <!--Required 用户接收SDK通知栏信息的intent-->        <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />        <!--Required 用户打开自定义通知栏的intent-->        <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />        <!-- 接收网络变化 连接/断开 since 1.6.3 -->        <action android:name="cn.jpush.android.intent.CONNECTION" />        <category android:name="com.cjt.customcalendar" />    </intent-filter></receiver>

想要成功的拿到自定义的消息,就必须知道JPush定义的API接口,接下来看下自定义的广播的写法


public class MyJPushReceiver extends BroadcastReceiver {    private static final String TAG = "Cjt";    @Override    public void onReceive(Context context, Intent intent) {        Bundle bundle = intent.getExtras();        Log.d(TAG, "onReceive - " + intent.getAction());        if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {            String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);            Log.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);        }else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {            Log.d(TAG, "收到了自定义消息。消息内容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE));            // 自定义消息不会展示在通知栏,完全要开发者写代码去处理        } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {            Log.d(TAG, "收到了通知");            // 在这里可以做些统计,或者做些其他工作        } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {            Log.d(TAG, "用户点击打开了通知");            // 在这里可以自己写代码去定义用户点击后的行为            Intent i = new Intent(context, TestActivity.class);  //自定义打开的界面            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            context.startActivity(i);        } else {            Log.d(TAG, "Unhandled intent - " + intent.getAction());        }    }}

来看下打印的日志,


好了,基本上普及了极光推送的基本知识了,下一部分将会涉及到推送的运用,结合LitePal数据库的使用



0 0
原创粉丝点击