及时推送个推集成
来源:互联网 发布:淘宝店铺关注人数越多 编辑:程序博客网 时间:2024/04/30 22:33
个推及时推送集成
1. 创建个推应用
请登录 http://dev.getui.com ,选择登记应用并填写应用名称和包名信息,完成应用创建:
点击应用配置,获取到相应的AppID、AppKey、AppSecret信息:
2. 创建项目工程
创建项目之后,在Project根目录下build.gradle文件中配置maven库URL:
allprojects { repositories { jcenter() maven { url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/" } } }
在对应的module下的build.gradle文件中添加对应依赖:
android { ...... defaultConfig { applicationId "com.xxx.xxx" //包名 ...... manifestPlaceholders = [ GETUI_APP_ID : "APP_ID", GETUI_APP_KEY : "APP_KEY", GETUI_APP_SECRET : "APP_SECRET" ] ndk { //选择要添加的对应cpu类型的.so库。 abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64" } ...... } ...... } dependencies { ...... compile 'com.getui:sdk:+' compile 'com.android.support:support-v4:+' ...... }
注 : 如果在添加以上 abiFilter 配置之后android Studio出现以下提示:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在 Project 根目录的gradle.properties文件中添加:
android.useDeprecatedNdk=true
3. 添加个推SDK及相关配置
添加可选权限
<!-- 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" />
在项目中添加一个继承自Android.app.Service的类,参考下列代码实现Service各个生命周期回调方法:
package com.cock.gpushdemo;import android.app.Service;import android.content.Intent;import android.os.IBinder;import com.igexin.sdk.GTServiceManager;/** * Created by Admin on 2017/5/27. */public class DemoPushService extends Service { @Override public void onCreate() { super.onCreate(); GTServiceManager.getInstance().onCreate(this); } @Override public int onStartCommand(Intent intent, int flags, int 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="com.cock.gpushdemo.DemoPushService" android:exported="true" android:label="PushService" android:process=":pushservice"></service>
在项目源码中添加一个继承自com.igexin.sdk.GTIntentService的类,用于接收CID、透传消息以及其他推送服务事件。请参考下列代码实现各个事件回调方法:
package com.cock.gpushdemo;import android.content.Context;import android.util.Log;import com.igexin.sdk.GTIntentService;import com.igexin.sdk.message.GTCmdMessage;import com.igexin.sdk.message.GTTransmitMessage;/** * Created by Admin on 2017/5/27. */public class DemoIntentService extends GTIntentService { public DemoIntentService() { } @Override public void onReceiveServicePid(Context context, int pid) { } @Override public void onReceiveClientId(Context context, String clientid) { Log.e(TAG, "onReceiveClientId -> " + "clientid = " + clientid); } @Override public void onReceiveMessageData(Context context, GTTransmitMessage gtTransmitMessage) { } @Override public void onReceiveOnlineState(Context context, boolean b) { } @Override public void onReceiveCommandResult(Context context, GTCmdMessage gtCmdMessage) { }}
在AndroidManifest.xml中配置上述 IntentService 类:
<service android:name="com.cock.gpushdemo.DemoIntentService"/>
4. 初始化SDK
一般情况下可以在主Activity的onCreate()或者onResume()方法中调用:参考代码如下
package com.cock.gpushdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.igexin.sdk.PushManager;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PushManager.getInstance().initialize(this.getApplicationContext(),DemoPushService.class); PushManager.getInstance().registerPushIntentService(this,DemoIntentService.class); }}
连接手机或启动Android模拟器,编译运行你的工程,查看logcat信息。在搜索框中输入clientid,如果能显示clientid is xxx日志,则说明个推SDK已经成功运行起来了:
在控制台推送必须使用真机,虚拟机貌似接收不到:
阅读全文
0 0
- 及时推送个推集成
- 消息推送 “个推集成”
- iOS集成个推推送
- dcloud -集成个推 推送消息内容
- 如何集成个推sdk,并保证推送正常
- 即时推送--个推的集成过程整理
- 集成个推实现推送跳转到指定页面
- 小米推送,华为推送,个推,阿里云推送集成(服务端JAVA开发)
- 推送之个推
- 个推消息推送
- 个推推送步骤
- Android 推送-个推
- 个推 集成
- IOS 个推推送总结
- 消息推送_个推
- 个推推送的数据结构:
- 个推App消息推送
- 个推推送模板及推送方式
- JSON.parse和eval的区别
- Swift 开发中,为什么要远离 Heap?
- PAT 1007. 素数对猜想
- net面试2
- web多服务器之间的session同步方法
- 及时推送个推集成
- 每周荐书:MySQL、Kafka、微信小程序(评论送书)
- maven/gradle 打包后自动上传到nexus仓库
- [RK3288][Android6.0] 调试笔记 --- Audio驱动层判断录音数据是否异常
- sublime插件-markdown&todoList
- count慢的问题解决
- 原型模式【Prototype Pattern】
- Spring框架自学之路——简易入门
- Android Native 崩溃日志收集