消息推送_个推
来源:互联网 发布:沈阳知行科技是培训吗 编辑:程序博客网 时间:2024/05/01 02:14
目前来说消息推送的第三放框架有很多 比如说
友盟:http://www.umeng.com/push
百度云推送:http://push.baidu.com/fc
腾讯信鸽:http://xg.qq.com/xg
今天介绍的是
个推:http://www.getui.com/
开发文档: http://docs.getui.com/mobile/android/overview/
概述
1.运行环境
SDK支持Android 2.2及以上版本的Android系统;手机必须要有网络(GPRS、3G或Wifi网络等);手机可以没有SIM卡,但是可能导致部分功能缺失;手机可以不挂载SD卡,但部分功能可能无法正常工作。
2.主要功能及特点
个推Android SDK可以在后台驻留,维持与推送服务器的长连接,实时接收推送消息。SDK采用独有技术确保推送服务省电省流量运行,不会给应用和手机设备造成影响。集成简单快速,提供7x24技术支持。支持多个APP合并一条长连接,共享链路,省电省流量。SDK接口丰富,可定制推送模式和通知栏提示样式。可以根据用户属性建立不同标签,进行定向推送,也可以进行A/B分组测试,从而进行精细化运营。提供别名接口、静默时间设置接口、推送控制接口,满足APP的各种需求。Android SDK不仅能提供云端到客户端的推送服务,也可以提供从客户端上传至云端的服务,即推送消息链路支持上下行双向通道,开发者与客户端之间互动更便利。
使用步骤:
1.访问 https://dev.getui.com/dos4.0/index.html#login 注册应用
2.下载SDK并解压 里面有三个文件夹
3.将SDK解压后的资源文件中的GetuiExt.jar和GetuiSDK.jar拷贝到项目中的libs,并添加到依赖
Android Studio工程默认已经添加了supportV7的依赖,如果没有,就添加加压后的supportV4的依赖,否则会有异常
armeabi-v7a和x86的so文件,默认SDK中并不包含,需要的话可以单独下载
如果要添加so文件,需要自行在\app\src\main目录中新建文件夹jniLibs,然后把对应的so文件添加进去
4.将资源文件中的layout文件拷贝到项目的layout文件夹中
5.如果需要修改通知栏中的提示图标,可以在在res/drawable-hdpi/、res/drawable-mdpi/、res/drawable-ldpi/等各分辨率资源目录下,放置相应尺寸的push.png图片
6.在清单文件中添加权限. 注意如果有需要替换包名的 ,替换包名
**注意::**<!-- 解决Android L上通知显示异常问题, build .gradle 文件中targetSdkVersion需要设置成22 --><uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22" /><!-- 个推SDK权限配置开始 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.GET_TASKS" /><!-- ibeancon 需要蓝牙权限 --><uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/><!-- 支持个推3.0 电子围栏功能 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- 浮动通知权限 --><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/><!-- 自定义权限 --> <uses-permission android:name="getui.permission.GetuiService.你的包名" /><!--替换为第三方应用的包名--><permission android:name="getui.permission.GetuiService.你的包名" android:protectionLevel="normal" ></permission><!--替换为第三方应用的包名--><!-- 个推SDK权限配置结束 -->
7.在清单文件中manifest/Application节点添加以下信息.注意替换内容
<!--个推SDK配置开始--> <!-- 配置的第三方参数属性 --> <meta-data android:name="PUSH_APPID" android:value="你的APPID" /><!--替换为第三方应用的APPID--> <meta-data android:name="PUSH_APPKEY" android:value="你的APPKEY" /><!--替换为第三方应用的APPKEY--> <meta-data android:name="PUSH_APPSECRET" android:value="你的APPSECRET" /><!--替换为第三方应用的APPSECRET--> <!-- 配置SDK核心服务 --> <service android:name="com.igexin.sdk.PushService" android:exported="true" android:label="NotificationCenter" android:process=":pushservice" /> <service android:name="com.igexin.sdk.PushServiceUser" android:exported="true" android:label="NotificationCenterUser" /> <receiver android:name="com.igexin.sdk.PushReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="com.igexin.sdk.action.refreshls" /> <!-- 以下三项为可选的action声明,可大大提高service存活率和消息到达速度 --> <action android:name="android.intent.action.MEDIA_MOUNTED" /> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> </intent-filter> </receiver> <receiver android:name="com.igexin.sdk.PushManagerReceiver" android:exported="false" > <intent-filter> <action android:name="com.igexin.sdk.action.pushmanager" /> </intent-filter> </receiver> <activity android:name="com.igexin.sdk.PushActivity" android:excludeFromRecents="true" android:exported="false" android:process=":pushservice" android:taskAffinity="com.igexin.sdk.PushActivityTask" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.igexin.sdk.GActivity" android:excludeFromRecents="true" android:exported="true" android:process=":pushservice" android:taskAffinity="com.igexin.sdk.PushActivityTask" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> <service android:name="com.igexin.download.DownloadService" android:process=":pushservice" /> <receiver android:name="com.igexin.download.DownloadReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> <provider android:name="com.igexin.download.DownloadProvider" android:exported="true" android:authorities="downloads.你的包名" android:process=":pushservice" /><!--替换为第三方应用的包名--> <activity android:name="com.igexin.getuiext.activity.GetuiExtActivity" android:configChanges="orientation|keyboard|keyboardHidden" android:excludeFromRecents="true" android:exported="false" android:process=":pushservice" android:taskAffinity="android.task.myServicetask" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <receiver android:name="com.igexin.getuiext.service.PayloadReceiver" android:exported="false" > <intent-filter> <action android:name="com.igexin.sdk.action.7fjUl2Z3LH6xYy7NQK4ni4" /> <action android:name="com.igexin.sdk.action.你的APPID" /><!--替换为第三方应用的APPID--> </intent-filter> </receiver> <service android:name="com.igexin.getuiext.service.GetuiExtService" android:process=":pushservice" /><!-- 个推SDK配置结束 -->
代码实现:
8.在Activity中初始化SDK
package com.getui;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.igexin.sdk.PushManager;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //方法必须在Activity或Service类内调用, //一般情况下,可以在Activity的onCreate()方法中调用 PushManager.getInstance().initialize( this.getApplicationContext() ); }}
9.查看Android Monitor信息,在搜索框中输入“clientid”可以看到“clientid is xxx”,说明初始化SDK成功,获取到了相应的cid信息
成功之后 就可以通过个推 想所有安装了app的用户推送消息了
- 消息推送_个推
- 个推消息推送
- 消息推送 “个推集成”
- 个推App消息推送
- 笔记66--消息推送之个推
- 笔记66--消息推送之个推
- iOS个推消息推送的使用
- H5+个推实现消息推送服务
- dcloud -集成个推 推送消息内容
- 消息推送(个推推送)的原理
- [个推] 使用个推实现服务器端消息推送,推送结果返回分析
- Delphi XE8实现移动端的消息推送(个推)
- android个推消息推送,asp.net调用接口
- HBuilder开发的APP使用个推推送消息
- 个推PC端推送消息至App
- 利用MUI+个推实现APP消息推送
- 个推的推送消息延迟的一个原因记录
- 推送之个推
- HDU 1851 A Simple Game
- Git 将远程数据拷贝到本地的具体实现(08)
- 堆外内存(off-heap)、堆内内存(on-heap)
- 内部类
- MySQL 优化之 index merge(索引合并)
- 消息推送_个推
- JFinal 学习笔记
- 记与Git相关
- Xcode7免证书真机调试
- 【转载收藏以后看】HTTP多线程下载
- apt-get 与 yum的区别 (转)
- 如何将mysql 5.6转换成percona 5.6之一
- 初始Python 20151203
- gnu arm as 语法