及时推送个推集成

个推及时推送集成

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已经成功运行起来了:

这里写图片描述

在控制台推送必须使用真机,虚拟机貌似接收不到:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值