全部产品

基本设置相关接口


说明

以下接口调用时,如有回调均为异步执行,且回调不能为空。

SDK初始化

初始化推送SDK配置,必须在application的onCreate方法中执行,主进程和channel进程必须都执行到

方法定义

public static void init(Context appContext)
public static void init(Context appContext, boolean enableChannelProcess)
public static void init(Context appContext, String appKey, String appSecret)
public static void init(Context appContext, String appKey, String appSecret, boolean enableChannelProcess)
public static void init(PushInitConfig pushInitConfig)

// 初始化配置,针对需要多项配置的情况
public class PushInitConfig {
    public static class Builder {
        // application配置,必填
        public Builder application(Application application)
        // appKey 动态配置,使用manifest配置时 不用设置
        public Builder appKey(String appKey)
        // appSecret 动态配置,使用manifest配置时 不用设置
        public Builder appSecret(String appSecret)
        // 禁用channel进程配置,特殊场景使用,不必须
        public Builder disableChannelProcess(boolean disableChannelProcess)
        // 定期循环拉起channel进程配置,特殊场景使用,不必须
        public Builder loopStartChannel(boolean enable)
        // 定期循环拉起channel进程间隔配置 单位ms,特殊场景使用,不必须
        public Builder loopInterval(long interval) 
        // 构建初始化配置
        public PushInitConfig build()
    }
}

参数说明

参数

类型

是否必填

说明

context

Context

应用上下文(需要ApplicationContext)

appKey

String

当没有在manifest中配置appKey时,此处必须填写

appSecret

String

当没有在manifest中配置appSecret时,此处必须填写

enableChannelProcess

boolean

是否使用静默通道,默认是。

静默通道用于应用在后台时接收推送,会采取一些提高存活率的措施,如果只需要应用在前台时接收推送,可以不使用静默通道

pushInitConfig

PushInitConfig

替代其他init方法,统一所有参数配置到此类。

代码示例

        
        // 一般情况
        PushInitConfig config = new PushInitConfig.Builder()
                .application(this)
                .build();
        PushServiceFactory.init(config);
        
        // 需要代码动态配置appKey和appSecret
        PushInitConfig config = new PushInitConfig.Builder()
                .application(this)
                .appKey("填入应用的appKey")
                .appSecret("填入应用的appSecret")
                .build();
        PushServiceFactory.init(config);
        
        // 特殊场景 需要禁止channel
        PushInitConfig config = new PushInitConfig.Builder()
                .application(this)
                .disableChannelProcess(SpUtils.disableChannel(applicationContext))
                .build();
        PushServiceFactory.init(config);

        // 特殊场景 需要定时拉起channel
        PushInitConfig config = new PushInitConfig.Builder()
                .application(this)
                .loopStartChannel(true)
                .loopInterval(30 * 1000)
                .build();
        PushServiceFactory.init(config);

SDK注册

注册推送通道,开始接收推送。可以根据需要延迟注册,比如需要用户签署完隐私政策

方法定义

void register(Context context, CommonCallback callback);

参数说明

参数

类型

是否必填

说明

context

Context

应用上下文(需要ApplicationContext)

callback

CommonCallback

回调,错误码参见错误处理

代码示例

        pushService = PushServiceFactory.getCloudPushService();
        pushService.register(applicationContext, new CommonCallback() {
            @Override
            public void onSuccess(String response) {
                Log.i(TAG, "init cloudchannel success  " + pushService.getDeviceId());
                setConsoleText("init cloudchannel success  " + pushService.getDeviceId());
            }

            @Override
            public void onFailed(String errorCode, String errorMessage) {
                Log.e(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
                setConsoleText("init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
            }
        });

SDK动态注册(废弃)

支持动态设置AppKey、AppSecret的注册接口,与SDK注册功能相同。

注意

3.2.4版本以后不支持此方法调用。如果要在代码中动态注册AppKey和AppSecret,请使用PushServiceFactory.init()带AppKey和AppSecret的初始化方法

方法定义

void register(Context context, String appKey, String appSecret, CommonCallback callback);

参数说明

参数

类型

是否必填

说明

context

Context

应用上下文

appKey

String

阿里云推送平台的appKey

appSecret

String

阿里云推送平台的appSecret

callback

CommonCallback

回调,错误码参见错误处理

代码示例

        pushService = PushServiceFactory.getCloudPushService();
        pushService.register(applicationContext, "xxxxx", "xxxxxx", new CommonCallback() {
            @Override
            public void onSuccess(String response) {
                Log.i(TAG, "init cloudchannel success  " + pushService.getDeviceId());
                setConsoleText("init cloudchannel success  " + pushService.getDeviceId());
            }

            @Override
            public void onFailed(String errorCode, String errorMessage) {
                Log.e(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
                setConsoleText("init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
            }
        });

获取设备标识

获取设备唯一标识,指定设备推送时需要。

方法定义

String getDeviceId();

代码示例

String deviceId = PushServiceFactory.getCloudPushService().getDeviceId();

设置日志等级

在通道初始化之前设置日志等级,默认等级为CloudPushService.LOG_DEBUG。

方法定义

void setLogLevel(int logLevel);

参数说明

参数

类型

是否必填

说明

logLevel

int

设置日志等级,支持以下几种类型:

CloudPushService.LOG_ERROR

CloudPushService.LOG_INFO

CloudPushService.LOG_DEBUG

CloudPushService.LOG_OFF:关闭Log

代码示例

        pushService = PushServiceFactory.getCloudPushService();
        pushService.setLogLevel(CloudPushService.LOG_DEBUG);

打开推送通道

注意

  • SDK版本V3.0.3及以上版本支持。

  • 用于在程序运行时动态打开推送通道,全量推送场景下,打开推送通道需要24小时生效,其他场景实时生效。

打开推送,推送默认就是打开状态,一般与关闭推送通道配套使用,只有关闭过才需要打开推送

方法定义

void turnOnPushChannel(CommonCallback callback);

参数说明

参数

类型

是否必填

说明

callback

CommonCallback

操作成功与否的回调

代码示例

       mPushService = PushServiceFactory.getCloudPushService(); 
       mPushService.turnOnPushChannel(new CommonCallback() {
            @Override
            public void onSuccess(String s) {
                tvConsoleText.append("turn on push channel success\n");
            }

            @Override
            public void onFailed(String errorCode, String errorMsg) {
                tvConsoleText.append("turn on push channel failed." +
                        "errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n");
            }
        });

关闭推送通道

注意

  • SDK版本V3.0.3及以上版本支持。

  • 用于在程序运行时动态关闭推送通道,全量推送场景下,关闭推送通道需要24小时生效,其他场景实时生效。

关闭推送,注意此时并不是真正断开推送通道,而是告诉服务这个设备不接收推送了。关闭之后,即使重新初始化SDK也不会打开推送,需要主动调用打开推送,才会重新接收推送

方法定义

void turnOffPushChannel(CommonCallback callback);

参数说明

参数

类型

是否必填

说明

callback

CommonCallback

操作成功与否的回调

代码示例

       mPushService = PushServiceFactory.getCloudPushService(); 
       mPushService.turnOffPushChannel(new CommonCallback() {
            @Override
            public void onSuccess(String s) {
                tvConsoleText.append("turn off push channel success\n");
            }

            @Override
            public void onFailed(String errorCode, String errorMsg) {
                tvConsoleText.append("turn off push channel failed." +
                        "errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n");
            }
        });

查询推送通道状态

注意

  • SDK版本V3.0.3及以上版本支持。

  • 用于在程序运行时查询当前推送通道状态,如果当前为打开状态,则通过callback.success(String response)回调传入on,反之则传入off。

判断当前推送打开关闭状态

方法定义

void checkPushChannelStatus(CommonCallback callback);

public interface CommonCallback {

    void onSuccess(String response);

    void onFailed(String errorCode, String errorMessage);
}

参数说明

参数

类型

是否必填

说明

callback

CommonCallback

查询结果回调,response为on表示推送通道打开,off表示推送通道关闭

示例代码

        mPushService = PushServiceFactory.getCloudPushService(); 
        mPushService.checkPushChannelStatus(new CommonCallback() {
            @Override
            public void onSuccess(String response) {
                if (response.equals("on")) {
                    // 当前是打开状态
                } else {
                    // 当前是关闭状态
                }
            }

            @Override
            public void onFailed(String errorCode, String errorMessage) {
            }
        });

设置消息接收IntentService

注意

  • SDK版本V3.0.10及以上版本支持。

  • 通过IntentService组件接收消息回调。

  • 设置后消息将通过该组件透出,不在通过MessageReceiver

设置接收推送的服务,服务需要继承AliyunMessageIntentService。默认使用广播的方式接收推送,设置之后会改为使用服务接收推送

方法定义

void setPushIntentService(Class messageIntentService);

参数说明

参数

类型

是否必填

说明

messageIntentService

Class

自定义接收消息IntentService的class,继承AliyunMessageIntentService。

null表示使用广播接收推送

代码示例

        mPushService = PushServiceFactory.getCloudPushService(); 
        mPushService.setPushIntentService(MyMessageIntentService.class);