Android之集成友盟推送功能

友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等app开发和运营解决方案。

如何快速集成友盟推送功能:

1. 注册友盟账号

友盟开发者账号的注册地址:http://www.umeng.com/users/sign_up

2. 创建推送应用

首先进入友盟消息推送的应用中心,创建一个应用,链接地址为:http://message.umeng.com/appList

应用创建完成后,点击应用名称进入应用详情页面,进入“应用信息”页面,可以看到应用的AppKey和AppMasterSecret


3. 下载Android SDK

友盟消息推送android SDK下载地址:

http://dev.umeng.com/push/ios/sdk-download

4. 集成开发

参考http://dev.umeng.com/push/android/integration进行集成开发。

4.1 导入SDK所需的jar包

导入jar包的过程中,如果是ADT 17或者以上的版本,只需要将com.umeng.message.lib.jar直接复制到项目的libs下面,这样做之后,ADT能自动找到所有在libs文件夹下的JAR包,把他们加到工程的依赖路径中,并直接显示在Android Dependecies分类下。

切记,右键Properties -> Java Build Path -> Libraries然后点击Add External JARs... 选择指向jar的路径,点击OK,这种方式导入后,会出现异常,具体原因请参考http://blog.csdn.net/luckily01/article/details/8566956

4.2 配置AndroidManifest.xml,添加相应的权限


4.3 添加组件

在application标签下,注意将[应用包名]换成自己的应用的包名:

<receiverandroid:name="com.umeng.message.NotificationProxyBroadcastReceiver"android:exported="false" >
</receiver>
<receiver android:name="com.umeng.message.RegistrationReceiver" ><intent-filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /></intent-filter><intent-filter><action android:name="android.intent.action.PACKAGE_REMOVED" /><data android:scheme="package" /></intent-filter><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /></intent-filter></receiver>
<receiver android:name="com.umeng.message.UmengBroadcastReceiver" ><intent-filter><action android:name="org.agoo.android.intent.action.RECEIVE" /></intent-filter><intent-filter><action android:name="【应用包名】.intent.action.COMMAND" /></intent-filter><intent-filter><action android:name="org.agoo.android.intent.action.RE_ELECTION_V2" /></intent-filter>
</receiver>
<receiver android:name="com.umeng.message.BootBroadcastReceiver" ><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /></intent-filter>
</receiver>
可以根据需要自行设置 android:label 中的服务名 :<serviceandroid:name="com.umeng.message.UmengService"android:label="PushService" android:exported="true" android:process=":pushService_v1" >

<intent-filter><action android:name="【应用包名】.intent.action.START" /></intent-filter><intent-filter><action android:name="【应用包名】.intent.action.COCKROACH" /></intent-filter><intent-filter><action android:name="org.agoo.android.intent.action.PING" /></intent-filter>
</service>
<serviceandroid:name="org.android.agoo.service.ElectionService"android:exported="true"android:process=":pushService_v1" ><intent-filter><action android:name="org.agoo.android.intent.action.ELECTION_V2" /></intent-filter>
</service>
<service android:name="com.umeng.message.UmengIntentService" />
<!-- V1.3.0添加的service,负责下载通知的资源 -->
<service android:name="com.umeng.message.UmengDownloadResourceService" />

4.4 添加AppKey和Umeng Message Secret

<application>标签下:

<meta-dataandroid:name="UMENG_APPKEY"android:value="你的APPKEY" >
</meta-data>
<meta-dataandroid:name="UMENG_MESSAGE_SECRET"android:value="你的Umeng Message Secret" >
</meta-data>

5. 添加代码,编译测试5.1 在应用的主Activity onCreate() 函数中开启推送服务

PushAgent mPushAgent = PushAgent.getInstance(context);
mPushAgent.enable();

5.2 获取设备的Device Token(可选)如果在测试或其他使用场景中,需要获取设备的Device Token,可以使用下面的方法。

String device_token = UmengRegistrar.getRegistrationId(context)

说明

  • Device Token为友盟生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上每个应用对应的Device Token不一样。
  • 获取Device Token的代码需要放在mPushAgent.enable();后面,注册成功以后调用才能获得Device Token。
  • 如果返回值为空, 说明设备还没有注册成功, 需要等待几秒钟,同时请确保测试手机网络畅通。
5.3 添加测试设备



Device Token可以通过5.2的步骤获取

5.4 发送测试消息

在测试消息下新建测试消息:


确保测试设备网络畅通后,消息推送成功:


测试成功!


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

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

相关文章

Win11手机应用大改!全新界面来袭

在 Windows 11 中&#xff0c;应用商店、画图、照片、计算器等系统内置应用都获得了全新的改进&#xff0c;这回终于轮到你的手机应用了。在今年 9 月的微软 Windows 11 硬件暨全新 Surface 设备发布会上&#xff0c;微软曾简要地展示了 Windows 11 内置应用 Your Phone&#x…

serialization机制

首先说明一下序列化的知识&#xff1a; java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中&#xff0c;使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中&#xff1b;然后在需要的时候&#xff0c;可以根据字节流中的信息来重…

java2的7次方怎么表示_静态市盈率要怎么看?

静态市盈率是估值一个公司质地的指标&#xff0c;同时它也就是大家常说的市盈率。它体现的是一个企业按照目前的盈利水平&#xff0c;我们买入后需要多长时间才能回本。那么静态市盈率高好还是低好呢&#xff1f;静态市盈率低好&#xff0c;高就意味着该股高估了。静态市盈率是…

中国科幻扛鼎之作,原来真的不止刘慈欣

▲ 点击查看50年前的某天&#xff0c;一个小孩和一群大人一起仰望着晴朗的天空&#xff0c;看着中国第一颗人造卫星“东方红一号”&#xff0c;默默地担心它会撞到其他星星。而这份小小的担心&#xff0c;成了他后来开始创造科幻的动力和梦想。这个仰望晴空的小孩叫刘慈欣。如果…

程学旗 计算机,徐明伟-青年科学家奖-中国计算机学会

2010CCF青年科学家奖获奖者徐明伟 教授清华大学分别于1994年和1998年在清华大学计算机科学与技术系获工学学士和工学博士学位。现为清华大学计算机系教授&#xff0c;博士生导师&#xff0c;网络所所长&#xff0c;计算机学会YOCSEF AC委员&#xff0c;中国通信标准化协会技术管…

.net6给winform带来的新功能

首先简化了Program文件&#xff0c;引入了全局命名空间&#xff0c;但顶级语句由于Main函数的特性[STAThread]没有引用进来。namespace WinFormsDemo {internal static class Program{/// <summary>/// The main entry point for the application./// </summary>[…

男生的哪个“不要”是真的不要?

1 每天一个被炒小技巧&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 今天你能接到水算我输&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 如何形容自己没钱&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 猜中了开头没猜中结…

Git之如何解决Error:pathspec ‘/layout/radar_chart.xml‘ did not match any file(s) known to

不废话&#xff0c;先爆错误图片 问题产生原因&#xff1a; 我把android studio里面的项目提交到github里面的时候&#xff0c;出现了了error: pathspec app/src/main/res/layout/radar_chart.xml did not match any file(s) known to git.&#xff0c;因为我一开始新建了一个文…

江诗丹顿geneve系列_江诗丹顿的另一面

江诗丹顿在售表款目录里&#xff0c;不算阁楼工匠定制系列&#xff0c;你猜最贵的是哪一款&#xff1f;​答案不是包含三问、万年历和陀飞轮功能的传袭系列超卓复杂腕表&#xff0c;而是一枚具有简单时分功能的高级珠宝表款。打开江诗丹顿的官方微信公众号&#xff0c;进入微信…

程序内存一直在泄漏,原来是异步死循环了 !

一&#xff1a;背景 1. 讲故事上个月有位朋友找到我&#xff0c;说他的程序出现了内存泄漏&#xff0c;不知道如何进一步分析&#xff0c;截图如下&#xff1a;朋友这段话已经说的非常言简意赅了&#xff0c;那就上 windbg 说话吧。二&#xff1a;Windbg 分析 1. 到底是哪一方面…

太巧了!学霸夫妻携手进入武大读博,两人的硕士导师也是一对夫妻

全世界只有3.14 % 的人关注了爆炸吧知识本文募格学术撰写。参考来源&#xff1a;湖北日报、双一流大学网、募格学术此前报道等科研人的爱情是什么样子&#xff1f;或许是在学术的路上他们相识相知&#xff0c;往后也将共同拼搏&#xff0c;在科研领域擦出更多火花~前段时间&…

github怎么隐藏自己的pr记录_记便签的软件哪个好?怎么及时记录自己的想法

我们在平时的工作和生活中&#xff0c;如果遇到一些需要及时记下来的东西时&#xff0c;很多人都会选用在便签中记录下来的方式。对于记便签的软件来说&#xff0c;不同的品牌有不同的特点&#xff0c;要想在众多便签软件中选择出一款适合自己的&#xff0c;就需要下点功夫了&a…

bkwin设置文本控件为多行模式

2019独角兽企业重金招聘Python工程师标准>>> 指定textmode&#xff0c; 给到文本控件的区域 <class name"xxxxx" textmode"40A011"/> textmode是DT_FROMT位或值 DrawText api对应的formt 转载于:https://my.oschina.net/u/2436679/bl…

性能测试组件CodeBenchmark V2发布

CodeBenchmark是一款可视化的性能测试组件&#xff0c;通过组件可以对一个或多个功能代码进行一个并发测试&#xff1b;最终通过详细的测试结果来对比不同代码的性能差异。组件的使用非常简单&#xff0c;构建一个控制台程序然后引入BeetleX.CodeBenchmark组件编写几个代码即可…

一所传闻要被“降级”的211高校,让这位网红教授“救活了”

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;量子位&#xff08; ID: QbitAI&#xff09; 作者&#xff1a;金磊 发自 凹非寺太原理工大学&#xff0c;最近着实有点火。先是11月12日至13日&#xff0c;其官网一口气更新了3位「杰青」副校长&#xff0c;在高校任…

加载elementor时出现问题_不锈钢管在焊接时出现问题要怎么解决?

佛山不锈钢装饰管焊接时会出现各种问题&#xff0c;今天佛山不锈钢装饰管厂家喜有沃小编就简单的整理了一些常见问题及解决方法&#xff0c;希望能对大家有所帮助。佛山不锈钢装饰管焊接制作护栏1&#xff0c; 表面气孔佛山不锈钢装饰管在焊接时产生表面气孔的原因一般为使用了…

Android之玩转MPAndroidChart让(折线图、柱形图、饼状图、散列图、雷达图)优雅的舞动

第一步:不废话,先爆照 我的github地址:https://github.com/changechenyu/MPAndroidChartTest 第二步:介绍MPAndroidChart适用场景并把它的库文件导入我们开发的项目 介绍: MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种…

在PowerDesigner中设计物理模型1——表和主外键

在PD中建立物理模型由以下几种办法&#xff1a; 直接新建物理模型。设计好概念模型&#xff0c;然后由概念模型生成物理模型。设计好逻辑模型&#xff0c;然后由逻辑模型生成物理模型。使用逆向工程的方法&#xff0c;连接到现有的数据库&#xff0c;由数据库生成物理模型。物理…

.NET 6新特性试用 | 无需配置开发人员异常页

前言在.NET 6之前&#xff0c;我们需要在“Startup.cs”文件中手工配置开发人员异常页&#xff1a;if (env.IsDevelopment()) {app.UseDeveloperExceptionPage();app.UseSwagger();app.UseSwaggerUI(c > c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web…

html5中表格如何等分,纯css3饼图五等分

先看效果图&#xff1a;HTML代码如下&#xff1a;pie良好优秀未提交需努力加油98%得分率css代码如下&#xff1a;.pinOfStudent{background-color: #ffffff;width: 100%;position: relative;}#tipZone{position:relative;left:0;right:0;top: 1em;width:12.5em;height:12.5em;m…