本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
配置Application
配置application
。
application
必須配置。
application
接口定義
PushInitConfig.Builder application(Application application)
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
application | Application | 是 | Application |
代碼示例
val config = PushInitConfig.Builder()
.application(application)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.application(application)
.build();
配置AppKey
配置AppKey,如果在AndroidManifest.xml
中已經配置,這里可以不調用。
appKey
接口定義
PushInitConfig.Builder appKey(String appKey)
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
appKey | String | 是 | EMAS的appKey |
代碼示例
val config = PushInitConfig.Builder()
.appKey(appKey)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.appKey(appKey)
.build();
配置AppSecret
配置AppSecret,如果在AndroidManifest.xml
中已經配置,這里可以不調用。
appSecret
接口定義
PushInitConfig.Builder appSecret(String appSecret)
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
appSecret | String | 是 | EMAS的appSecret |
代碼示例
val config = PushInitConfig.Builder()
.appSecret(appSecret)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.appSecret(appSecret)
.build();
配置關閉channel進程
關閉channel進程。
disableChannelProcess
接口定義
PushInitConfig.Builder disableChannelProcess(boolean disableChannelProcess)
該接口已經廢棄。默認channel進程是關閉的,如果要開啟channel進程,請在AndroidManifest.xml中將ChannelService、ChannelService$KernelService的enable屬性設為true。
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
disableChannelProcess | boolean | 是 |
|
代碼示例
val config = PushInitConfig.Builder()
.disableChannelProcess(false)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.disableChannelProcess(false)
.build();
關閉Channel進程心跳
關閉channel進程心跳。
disableChannelProcessHeartbeat
接口定義
PushInitConfig.Builder disableChannelProcessHeartbeat(boolean disableChannelProcessHeartbeat)
該接口已經廢棄。默認channel進程心跳是關閉的,如果要開啟channel進程心跳,請在AndroidManifest.xml中將AccsJobService、EventReceiver、ServiceReceiver的enable屬性設為true。
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
disableChannelProcessHeartbeat | boolean | 是 |
|
代碼示例
val config = PushInitConfig.Builder()
.disableChannelProcessHeartbeat(false)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.disableChannelProcessHeartbeat(false)
.build();
定期循環啟動Channel進程
開啟Channel進程時,設置定期循環啟動Channel進程。默認關閉循環啟動。
loopStartChannel
接口定義
PushInitConfig.Builder loopStartChannel(boolean enable)
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
loopStartChannel | boolean | 是 |
|
代碼示例
val config = PushInitConfig.Builder()
.loopStartChannel(true)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.loopStartChannel(true)
.build();
配置定期循環啟動Channel進程的時間間隔
配置定期循環啟動Channel進程的時間間隔,只有在開啟定期循環啟動Channel進程時才會生效,默認間隔是5分鐘。
loopInterval
接口定義
PushInitConfig.Builder loopInterval(long interval)
所屬類
PushInitConfig.Builder
參數說明
參數 | 類型 | 是否必填 | 說明 |
loopInterval | long | 是 | 循環時間間隔,單位時毫秒。 |
代碼示例
val config = PushInitConfig.Builder()
.loopInterval(5 * 60 * 1000)
.build()
PushInitConfig config = new PushInitConfig.Builder()
.loopInterval(5 * 60 * 1000)
.build();
注冊推送通道
注冊推送通道,開始接收推送。可以根據需要延遲注冊,比如需要用戶簽署完隱私政策
register
接口定義
void register(Context context, CommonCallback callback)
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
context | Context | 是 | 應用上下文(需要ApplicationContext) |
callback | CommonCallback | 是 | 回調,錯誤碼參見錯誤處理 |
代碼示例
val pushService = PushServiceFactory.getCloudPushService()
pushService.register(applicationContext, object : CommonCallback() {
override fun onSuccess(response: String?) {
Log.i(TAG, "init cloudchannel success " + pushService.deviceId)
}
override fun onFailed(errorCode: String, errorMessage: String) {
Log.e(TAG, "init cloudchannel failed -- errorcode:$errorCode -- errorMessage:$errorMessage")
}
})
CloudPushService pushService = PushServiceFactory.getCloudPushService();
pushService.register(applicationContext, new CommonCallback() {
@Override
public void onSuccess(String response) {
Log.i(TAG, "init cloudchannel success " + pushService.getDeviceId());
}
@Override
public void onFailed(String errorCode, String errorMessage) {
Log.e(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
}
});
register
支持動態設置AppKey、AppSecret的注冊接口,與注冊功能相同。
接口定義
void register(Context context, String appKey, String appSecret, CommonCallback callback)
該接口已經廢棄。
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
context | Context | 是 | 應用上下文(需要ApplicationContext) |
appKey | String | 是 | EMAS的appKey |
appSecret | String | 是 | EMAS的appSecret |
callback | CommonCallback | 是 | 回調,錯誤碼參見錯誤處理 |
獲取設備標識
獲取設備唯一標識,指定設備推送時需要。
getDeviceId
接口定義
String getDeviceId()
所屬類
CloudPushService
返回說明
類型 | 說明 |
String | 設備唯一標識 |
代碼示例
val deviceId = PushServiceFactory.getCloudPushService().deviceId
String deviceId = PushServiceFactory.getCloudPushService().getDeviceId();
設置日志等級
在通道初始化之前設置日志等級,默認等級為CloudPushService.LOG_DEBUG。
setLogLevel
接口定義
void setLogLevel(int logLevel)
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
logLevel | int | 是 | 設置日志等級,支持以下幾種類型: CloudPushService.LOG_ERROR CloudPushService.LOG_INFO CloudPushService.LOG_DEBUG CloudPushService.LOG_OFF:關閉Log |
代碼示例
PushServiceFactory.getCloudPushService().setLogLevel(CloudPushService.LOG_INFO)
PushServiceFactory.getCloudPushService().setLogLevel(CloudPushService.LOG_INFO);
打開推送通道
打開推送,推送默認就是打開狀態,一般與關閉推送通道配套使用,只有關閉過才需要打開推送。
SDK版本V3.0.3及以上版本支持。
用于在程序運行時動態打開推送通道,全量推送場景下,打開推送通道需要24小時生效,其他場景實時生效。
turnOnPushChannel
接口定義
void turnOnPushChannel(CommonCallback callback)
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
callback | CommonCallback | 是 | 操作成功與否的回調 |
代碼示例
PushServiceFactory.getCloudPushService().turnOnPushChannel(object : CommonCallback() {
override fun onSuccess(s: String?) {}
override fun onFailed(errorCode: String?, errorMsg: String?) {}
})
PushServiceFactory.getCloudPushService().turnOnPushChannel(new CommonCallback() {
@Override
public void onSuccess(String s) {
}
@Override
public void onFailed(String errorCode, String errorMsg) {
}
});
關閉推送通道
關閉推送,注意此時并不是真正斷開推送通道,而是告訴服務這個設備不接收推送了。關閉之后,即使重新初始化SDK也不會打開推送,需要主動調用打開推送,才會重新接收推送。
SDK版本V3.0.3及以上版本支持。
用于在程序運行時動態關閉推送通道,全量推送場景下,關閉推送通道需要24小時生效,其他場景實時生效。
turnOffPushChannel
接口定義
void turnOffPushChannel(CommonCallback callback)
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
callback | CommonCallback | 是 | 操作成功與否的回調 |
代碼示例
PushServiceFactory.getCloudPushService().turnOffPushChannel(object : CommonCallback() {
override fun onSuccess(s: String?) {}
override fun onFailed(errorCode: String?, errorMsg: String?) {}
})
PushServiceFactory.getCloudPushService().turnOffPushChannel(new CommonCallback() {
@Override
public void onSuccess(String s) {
}
@Override
public void onFailed(String errorCode, String errorMsg) {
}
});
查詢推送通道狀態
判斷當前推送打開關閉狀態。
checkPushChannelStatus
接口定義
void checkPushChannelStatus(CommonCallback callback)
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
callback | CommonCallback | 是 | 查詢結果回調,response為on表示推送通道打開,off表示推送通道關閉 |
示例代碼
PushServiceFactory.getCloudPushService().checkPushChannelStatus(object : CommonCallback {
override fun onSuccess(response: String) {
if (response == "on") {
// 當前是打開狀態
} else {
// 當前是關閉狀態
}
}
override fun onFailed(errorCode: String, errorMsg: String) {}
})
PushServiceFactory.getCloudPushService().checkPushChannelStatus(new CommonCallback() {
@Override
public void onSuccess(String response) {
if (response.equals("on")) {
// 當前是打開狀態
} else {
// 當前是關閉狀態
}
}
@Override
public void onFailed(String errorCode, String errorMsg) {
}
});
設置消息接收IntentService
設置接收推送的服務,服務需要繼承AliyunMessageIntentService。默認使用廣播的方式接收推送,設置之后會改為使用服務接收推送。
SDK版本V3.0.10及以上版本支持。
通過IntentService組件接收消息回調。
設置后消息將通過該組件處理,不再通過MessageReceiver處理。
setPushIntentService
接口定義
void setPushIntentService(Class messageIntentService)
所屬類
CloudPushService
參數說明
參數 | 類型 | 是否必填 | 說明 |
messageIntentService | Class | 否 | 自定義接收消息IntentService的class,繼承AliyunMessageIntentService。 null表示使用廣播接收推送 |
代碼示例
PushServiceFactory.getCloudPushService()
.setPushIntentService(MyMessageIntentService.class)
PushServiceFactory.getCloudPushService()
.setPushIntentService(MyMessageIntentService.class);
接收SDK日志輸出
如果要輸出日志到文件或者上傳,注意不要包含debug和info級別日志,避免日志量過大,影響應用性能
注冊日志接口,用于接收SDK日志信息,排查問題。
addListener
接口定義
static void addListener(final LoggerListener lisn)
所屬類
AmsLogger
代碼示例
AmsLogger.addListener(object : LoggerListener {
override fun d(TAG: String, msg: String, tr: Throwable, flag: Int) {}
override fun i(TAG: String, msg: String, tr: Throwable, flag: Int) {}
override fun w(TAG: String, msg: String, tr: Throwable, flag: Int) {}
override fun e(TAG: String, msg: String, tr: Throwable, flag: Int) {}
})
AmsLogger.addListener(new LoggerListener() {
@Override
public void d(String TAG, String msg, Throwable tr, int flag) {
}
@Override
public void i(String TAG, String msg, Throwable tr, int flag) {
}
@Override
public void w(String TAG, String msg, Throwable tr, int flag) {
}
@Override
public void e(String TAG, String msg, Throwable tr, int flag) {
}
});