Android 友盟推送开发

121 阅读2分钟

implementation 'com.umeng.sdk:push:4.2.0'

// 添加友盟分享库

implementation 'cn.dlc.android:umeng-share:1.0.4'

2、在Application初始化 

/**

* 初始化友盟SDK

*/

private void initUmengSDK() {

/**

* 方法2,直接初始化,app key和channel为null的话,等价于方法1

* 初始化common库

* 参数1:上下文,不能为空

* 参数2:友盟 app key

* 参数3:友盟 channel

* 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机

* 参数5:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空

*/

UMConfigure.init(this, Information.UmengAppkey, Information.UmengChannel,

UMConfigure.DEVICE_TYPE_PHONE, Information.UmengPushSecret);

PushAgent instance = PushAgent.getInstance(this);

instance.register(new IUmengRegisterCallback() {

@Override

public void onSuccess(String s) {

Log.e("xsw", "推送id友盟token: "+s );

UserHelper.get().saveUmengToken(s);

}

@Override

public void onFailure(String s, String s1) {

Log.e("xsw", s+"---"+s1 );

}

});

UmengNotificationClickHandler umengNotificationClickHandler = new UmengNotificationClickHandler(){

@Override

public void launchApp(Context context, UMessage uMessage) {

Intent mIntent = new Intent(sInstance, WelcomeActivity.class);//自定义通知栏点击事件

mIntent.putExtra("notification",true);

mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );

startActivity(mIntent);

}

};

instance.setNotificationClickHandler(umengNotificationClickHandler);

UmengMessageHandler messageHandler = new UmengMessageHandler() {

@Override

public Notification getNotification(Context context, UMessage msg) {

LgqLog.e(msg.text+"....推送id==== "+msg.builder_id);//推送内容和ID

Message msgg = new Message();

msgg.what = 1;

Bundle bundle = new Bundle();

bundle.putString("text1",msg.text); //往Bundle中存放数据

msgg.setData(bundle);//mes利用Bundle传递数据

// mHandler.sendMessage(msgg);//用activity中的handler发送消息

mHandler.sendMessageAtTime(msgg,2000);

switch (msg.builder_id) {

case 1://自定义通知栏

Notification.Builder builder = new Notification.Builder(context);

RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),

R.layout.notification_view);

SimpleDateFormat df = new SimpleDateFormat("HH:mm");//设置日期格式"yyyy年-MM月dd日-HH时mm分ss秒"

总结

现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。

我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。

Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。但是周末花一天时间体验一下它的开发流程,了解一下它的优缺点、能干什么或者不能干什么。这个时间,并不是我们不能接受的。

如果有时间,其实通读一遍 Flutter 的文档,是最全面的一次对 Flutter 的了解过程。但是如果我们只有 8 小时的时间,我希望能关注一些最值得关注的点。

Android学习PDF+架构视频+面试文档+源码笔记

(跨平台开发(Flutter)、java基础与原理,自定义view、NDK、架构设计、性能优化、完整商业项目开发等)