Android 友盟推送开发

推送厂商集成文档:https://developer.umeng.com/docs/67966/detail/98589?spm=a311a.9588098.0.0#h1-vivo-push-5

 

SDK下载:https://developer.umeng.com/sdk/android 

 

集成步骤

 

1、导入依赖

 

implementation 'com.umeng.sdk:common:1.5.3'
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() {@Overridepublic void onSuccess(String s) {Log.e("xsw", "推送id友盟token: "+s );UserHelper.get().saveUmengToken(s);}@Overridepublic void onFailure(String s, String s1) {Log.e("xsw", s+"---"+s1 );}});UmengNotificationClickHandler umengNotificationClickHandler = new UmengNotificationClickHandler(){@Overridepublic 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() {@Overridepublic Notification getNotification(Context context, UMessage msg) {LgqLog.e(msg.text+"....推送id==== "+msg.builder_id);//推送内容和IDMessage 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秒"String dfd = df.format(new Date());myNotificationView.setTextViewText(R.id.notification_title, msg.title);myNotificationView.setTextViewText(R.id.notification_text, msg.text);myNotificationView.setTextViewText(R.id.timete, dfd);
//                        myNotificationView.setImageViewBitmap(R.id.notification_large_icon,
//                                getLargeIcon(context, msg));
//                        myNotificationView.setImageViewResource(R.id.notification_small_icon,
//                                getSmallIconId(context, msg));builder.setContent(myNotificationView).setSmallIcon(getSmallIconId(context, msg)).setTicker(msg.ticker).setAutoCancel(true);return builder.getNotification();default://默认为0,若填写的builder_id并不存在,也使用默认。return super.getNotification(context, msg);}}};instance.setMessageHandler(messageHandler);instance.setDisplayNotificationNumber(0);}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12-Flutter移动电商实战-首页导航区域编写

12-Flutter移动电商实战-首页导航区域编写 1、导航单元素的编写 从外部看,导航是一个GridView部件,但是每一个导航又是一个上下关系的Column。小伙伴们都知道Flutter有多层嵌套的问题,如果我们都写在一个组件里,那势必造成嵌套严…

Day3_操作记录

python基础: 回顾 1. 条件判断 if : x else: xx 循环 while for for i in range(5): 2. 数据类型: int 类型 float 小数类…

Android 全局悬浮按钮,悬浮按钮点击事件

实现效果: 实现方法: 在自定义baseActivity里面添加viwe即可。在子activity里刷新悬浮View即可 public abstract class BaseActivity extends BaseCommonActivity {LinearLayout saoli,ewmli;ImageView imageView;private QrCodeDialog mMQrCodeDialog;p…

13-Flutter移动电商实战-ADBanner组件的编写

1、AdBanner组件的编写 我们还是把这部分单独出来,需要说明的是,这个Class你也是可以完全独立成一个dart文件的。代码如下: 广告图片class AdBanner extends StatelessWidget { final String advertesPicture; AdBanner({Key key, this.adv…

android远程调试工具,android投屏工具

远程调试工具 说明:远程对方电脑需下载安装两个软件:Android studio 和向日葵 android投屏工具 说明:涉及硬件开发时,有的硬件没有安卓屏,可以使用 两个工具exe文件下载连接: https://download.csdn.net/…

14-Flutter移动电商实战-ADBanner组件的编写

拨打电话的功能在app里也很常见,比如一般的外卖app都会有这个才做。其实Flutter本身是没给我们提供拨打电话的能力的,那我们如何来拨打电话那? 1、编写店长电话模块 这个小伙伴们一定轻车熟路了,我也就不再多介绍吧。直接看代码,…

Android 捕获异常,上报异常日志,捕获奔溃日志,bugly使用实例

1、登录腾讯bugly平台创建应用 腾讯Bugly - 一种愉悦的开发方式 _android anr_android anr分析_iOS崩溃日志分析平台 2、1加载依赖 /*崩溃处理 */ implementation com.tonystark.android:defense_crash:2.0.0 //bugly implementation com.tencent.bugly:crashreport_upgrade:1.…

Android 获取天气数据

/** * 天气API * param cityname * return */ private String getUrl(String cityname){ return "http://wthrcdn.etouch.cn/weather_mini?city"cityname; } 传入城市,即可返回天气数据

windows下dos窗口实现持续ping显示时间保存至日志

效果图 右击新建 ping.bat 文件(ping为文件名称,随便起),内容如下: cscript ping.vbs 127.0.0.1 -t >log.txt127.0.0.1 修改为你自己的ip地址,log 为记录日志的文件名 右击新建 ping.vbs 文件&#x…

HDU.3652.B-number(数位DP)

题目链接 \(Description\) 求\([1,n]\)中十进制表示包含"13"这个子串&#xff0c;且能整除13的数的个数。 \(Solution\) 数位DP: dp[位][s(pre/have"13")][remainder],上界由DFS状态记录. //15MS 1520K #include <cstdio>int n,A[13],f[13][3][13]; …

AndroidStudio中Flutter打包APK

1、生成签名文件 在打包之前我们需要一个签名文件&#xff0c;证明文件的唯一性。 keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias signF:\APP\sign.jks为签名问价存放目录&#xff0c;sign 为密钥名。 后面都有用&#x…

Codeforces #471

C(分段) 题意&#xff1a; 分析&#xff1a; 我们分别考虑p2和p>3的情况  当p2的时候&#xff0c;个数明显是[L,R]内完全平方数的个数 当p>3的时候&#xff0c;我们注意到这样的数字个数是1e6级别的&#xff0c;且a最多也不超过1e6 我们可以对于每个a去枚举对应的p&…

Thinkpad Access Connections实现快速的在各种网络间进行切换

Thinkpad Access Connections快速的在各种网络间进行切换因为工作的原因要经常在多个无线或有线之间切换&#xff0c;每次要切换到不同的固定IP地址的网络更是一种折磨&#xff0c;换一次就要从新输入一次IP地址&#xff0c;Windows下有没有像Linux的NetworkManage那样的网络管…

TextView does not support text selection. Selection cancelled. 。TextViews复制文本失效解决方法

解决方法 前人种下了种子—— android:descendantFocusability"blocksDescendants" 去掉这个属性即可

15-Flutter移动电商实战-商品推荐区域制作

1、推荐商品类的编写 这个类接收一个List参数&#xff0c;就是推荐商品的列表&#xff0c;这个列表是可以左右滚动的。 /*商品推荐*/class Recommend extends StatelessWidget { final List recommendList; Recommend({Key key, this.recommendList}) : super(key: key);} 2…