第三方开源库:个推
来源:互联网 发布:六十甲子单双计算法 编辑:程序博客网 时间:2024/05/22 03:10
官方文档非常详细,而且每一步都配图说明。
官方文档的透传数据(Payload)就是Jpush里面的自定义消息,同Jpsuh相同,自定义消息是不显示通知,需要我们自己创建通知,才会显示在通知栏。
AndroidStudio快速集成文档
AndroidStudio标准集成文档
Eclipse集成文档
API接口文档
开发者平台
AndroidStudio快速集成
步骤
- 创建个推应用
- 创建项目工程
- 添加个推SDK并配置
- 编写代码集成
- 测试集成是否成功
Step1:创建个推应用
请登录 http://dev.getui.com ,选择登记应用并填写应用名称和包名信息,完成应用创建后,会生成 AppID、AppKey、AppSecret
Step2:创建项目工程
Step3:添加个推SDK并配置
快速集成是指:添加Maven库地址,也就是不需要我们复制粘贴jar和so文件,只需要配置
module + project
的build.gradle
即可。注意:尽管我们会将最新的个推SDK同步部署在JCenter上,但是为了保障稳定使用,我们建议开发者额外配置个推提供的maven库从而实现更快速的访问。
project的build.gradle的配置
在以项目名为命名的顶层build.gradle文件中,添加个推maven库地址,如下所示:
allprojects { repositories { jcenter() //Maven URL地址 maven { url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/" } }}
module的build.gradle的配置
第一步:配置依赖:
在
app/build.gradle
文件中引用个推SDK依赖库,如下图所示:
dependencies { ... compile 'com.getui:sdk:2.9.5.0'}
第二步:配置 so 库 + 个推应用参数:
- 先要在项目根目录下的gradle.properties
文件中配置useDeprecatedNdk
参数
android.useDeprecatedNdk=true
- 在
app/build.gradle
文件中的android.defaultConfig
下指定所需的 CPU 架构 + 个推应用参数:
android { ... defaultConfig { ... manifestPlaceholders = [ GETUI_APP_ID : "c7xtLWIari9nvrZ08HLbs3", GETUI_APP_KEY : "Ro58FTMNiy676ddKiZSij5", GETUI_APP_SECRET : "N3jDrcCfvO9LnRV6LztU52" ] ndk { abiFilters "armeabi", "armeabi-v7a"//, "x86_64" } } ...}
配置自定义推送服务
为了让推送服务在部分主流机型上更稳定运行,从2.9.5.0版本开始,个推支持第三方应用配置使用自定义Service来作为推送服务运行的载体。
- 在项目源码中添加一个继承自Android.app.Service的类,参考下列代码实现Service各个生命周期回调方法:
import com.igexin.sdk.GTServiceManager;/** * Created by cui on 2016/12/31. */public class PushService extends Service { @Override public void onCreate() { super.onCreate(); GTServiceManager.getInstance().onCreate(this); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); return GTServiceManager.getInstance().onStartCommand(this, intent, flags, startId); } @Override public IBinder onBind(Intent intent) { return GTServiceManager.getInstance().onBind(intent); } @Override public void onDestroy() { super.onDestroy(); GTServiceManager.getInstance().onDestroy(); } @Override public void onLowMemory() { super.onLowMemory(); GTServiceManager.getInstance().onLowMemory(); }}
- 在AndroidManifest.xml中添加上述自定义Service:
<service android:name=".PushService" android:exported="true" android:label="PushService" android:process=":pushservice"/>
导入通知栏图标
为了修改默认的通知栏顶部提示小图标,请在资源目录的res/drawable-ldpi/
、res/drawable-mdpi/
、res/drawable-hdpi/
、res/drawable-xhdpi/
、res/drawable-xxhdpi/
等各分辨率目录下,放置相应尺寸的文件名为push.png图片。
资源精简配置
如果您的工程启用了资源精简,即如果在app/build.gradle
的android.buildTypes.release
下配置了shrinkResources true
,为了避免个推SDK所需资源被错误精简导致功能异常,需要在项目资源目录res/raw
中添加keep.xml
文件,在SDK资料包中GETUI_ANDROID_SDK/资源文件/raw
目录下有keep.xml
示例文件,完整内容如下:
<?xml version="1.0" encoding="utf-8"?><resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@layout/getui_notification"/>
Step4:编写代码集成
初始化SDK
我们建议应用开发者在Activity或Service类中调用个推SDK的初始化方法,确保SDK在各种情况下都能正常运行。一般情况下可以在主Activity的onCreate()或者onResume()方法中调用,也可以在多个主要界面Activity的onCreate()或onResume()方法中调用。反复调用SDK初始化并不会有什么副作用。
// com.getui.demo.DemoPushService 为第三方自定义推送服务PushManager.getInstance().initialize(this.getApplicationContext(), PushService.class);
接收推送服务事件
添加一个继承自com.igexin.sdk.GTIntentService
的类,用于接收CID、透传消息以及其他推送服务事件。请参考下列代码实现各个事件回调方法:
透传数据(Payload)就是Jpush里面的自定义消息,同Jpsuh相同,自定义消息是不显示通知,需要我们自己创建通知。
/** * 继承 GTIntentService 接收来自个推的消息, 所有消息在线程中回调, 如果注册了该服务, 则务必要在 AndroidManifest中声明, 否则无法接受消息<br> * onReceiveMessageData 处理透传消息<br> * onReceiveClientId 接收 cid <br> * onReceiveOnlineState cid 离线上线通知 <br> * onReceiveCommandResult 各种事件处理回执 <br> */public class PushIntentService extends GTIntentService { private static final String TAG = "PushIntentService"; public PushIntentService() { } @Override public void onReceiveServicePid(Context context, int pid) { } @Override public void onReceiveMessageData(Context context, GTTransmitMessage msg) { //接收透传数据(Payload):就是Jpush里面的自定义消息 LogUtil.d(TAG,"msg = "+new String(msg.getPayload())); } @Override public void onReceiveClientId(Context context, String clientid) { Log.e(TAG, "onReceiveClientId -> " + "clientid = " + clientid); } @Override public void onReceiveOnlineState(Context context, boolean online) { } @Override public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { }}
- 在
AndroidManifest.xml
中配置上述IntentService
类:
<service android:name=".PushIntentService"/>
- 在个推SDK初始化后,注册上述 IntentService 类
// com.getui.demo.DemoIntentService 为第三方自定义的推送服务事件接收类PushManager.getInstance().registerPushIntentService(this.getApplicationContext(), PushIntentService.class);
Step5:测试集成是否成功
- 连接手机或启动Android模拟器,编译运行你的工程,查看logcat信息。在搜索框中输入
clientid
,如果能显示clientid is xxx
日志,则说明个推SDK已经成功运行起来了:
AndroidStudio标准集成
AndroidStudio标准集成文档
API接口文档
API接口文档
//clientid String clientid = PushManager.getInstance().getClientid(this);LogUtil.d(TAG, "clientid=" + clientid);//绑定别名PushManager manager = PushManager.getInstance();boolean flag = manager.bindAlias(this, "15153519007");if (flag) { LogUtil.d(TAG, "绑定成功");} else { LogUtil.d(TAG, "绑定失败");}
源码下载
GeTuiSDKDemo01
推送合集
第三方开源库:个推
第三方SDK:JPush:Android Studio
第三方SDK:JPush SDK Eclipse
- 第三方开源库:个推
- 第三方推送-个推使用
- 集成第三方组件--个推
- 第三方推送服务:个推服务推送流程
- 第三方推送服务——个推
- 第三方平台个推SDK的使用
- 个推 通过第三方个推开发者平台实现
- 个推
- 个推推送第三方服务的应用和自我理解(一)
- 个推推送第三方服务的应用和自我理解(二)
- Android第三方推送——极光推送,百度云推送,个推
- 推送技术哪家强? 个推vs极光vs信鸽第三方推送服务对比
- 第三个第三个
- android个推平台
- 个推使用总结
- 个推的使用方法
- 个推合作案例
- 个推运行环境
- Ambari学习19_ssh 公钥认证报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic).解决2
- 大数据处理堆实现N个数据找K个最大数据和堆排序
- asp时间的判断
- 数据结构学习笔记
- parse第三方服务好像要不能使用了
- 第三方开源库:个推
- 关于C++域作用符详解
- 在Ubuntu 16.04 LTS 下用Vim 打造自己的Python IDE 问题总结
- Android中dp px sp之间转化
- Gradle笔记2-构建脚本
- openH264编码流程
- 手机视频直播系统开发技术难点分析
- 告别Spinner下拉列表,用popupWindow 更美好
- linux下的编程问题