我在后端集成了移动推送的java sdk。使用阿里云页面控制台推送时,可以在App离线的状态下,使用厂商通道弹出系统通知。但使用后端SDK的情况下,只有App在线的情况下才行,不知道哪里出了问题,求大神解决。下面是我的代码
public static void testPushNoticeToAndroid() {
DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", AliCloudApiAccessKay.ACCESS_KEY_ID, AliCloudApiAccessKay.ACCESS_KEY_SECRET);
IAcsClient client = new DefaultAcsClient(profile);
PushRequest pushRequest = new PushRequest();
// 推送目标。
pushRequest.setAppKey(AliCloudApiAccessKay.APP_KEY);
pushRequest.setTarget("ALL"); // 推送目标。DEVICE:推送给设备、ACCOUNT:推送给指定帐号、TAG:推送给自定义标签、ALL:推送给全部。
pushRequest.setTargetValue("ALL");
pushRequest.setPushType("NOTICE"); // 消息类型。取值为MESSAGE、NOTICE。
pushRequest.setDeviceType("ANDROID"); // 设备类型。取值为ANDROID、iOS、ALL。
// 推送配置。
pushRequest.setTitle("ALi Push Title"); // 消息的标题。
pushRequest.setBody("Ali Push Body"); // 消息的内容。
// 推送配置:Android。
pushRequest.setAndroidNotifyType("BOTH");//通知的提醒方式。VIBRATE:震动、SOUND:声音、BOTH:声音和震动、NONE:静音。
pushRequest.setAndroidOpenType("APPLICATION"); //点击通知后动作。APPLICATION:打开应用、ACTIVITY:打开AndroidActivity、URL:打开URL、NONE:无跳转。
// 指定notificaitonchannel id。
pushRequest.setAndroidNotificationChannel("1");
try {
PushResponse response = client.getAcsResponse(pushRequest);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。