极光推送需要appkey和mastersecreter,登录极光官网自己之前注册过的账号登录即可获得,根据每个手机可以生成每个register_id,是一 一对应的关系,根据这些发送即可
https://docs.jiguang.cn/jpush/client/Android/android_api/#api_2
极光推送是根据唯一的一个东西生成的,比如说根据手机号生成,安卓手机用户退出登录重新登录就会再生成一个registrationId,但是ios的话除非把app卸载重新下的时候会再生成一个新的registrantionId
极光推送文档https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/
别人复杂案例blog.csdn.net/lixuegen/article/details/46819769
public class App
{
public static void main( String[] args )
{
//System.out.println( "Hello World!" );
String appkey=" ";//是key
String masterSecret=" ";//secret
String registration_id=" ";//唯一标示设备的id
PushPayload ppla=PayloadBuild.buildAndroidWinphonePayload(registration_id,"hello,Wth","I am not a title");
JPushClient jPushClient = new JPushClient(masterSecret,appkey,3);
try {
jPushClient.sendPush(ppla);
} catch (APIConnectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (APIRequestException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
以上是直接给手机app推送消息的,以下是更复杂的推送,在推送消息里面有
PushPayload pushPayload= buildPushObject_all_registrationId_alertWithTitle(registrationId, text, type);
PushResult pushResult=jPushClient.sendPush(pushPayload);
if(pushResult.getResponseCode()==200){
成功
}
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.registrationId(registrationId))
.setNotification(Notification.newBuilder()
// 指定当前推送的android通知
.addPlatformNotification(AndroidNotification.newBuilder()
.setAlert(text)
.addExtra("type", type)// 消息类型
.build())
// 指定当前推送的iOS通知
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(text)
.addExtra("type", type)
.build())
.build())
.setOptions(Options.newBuilder()
// 推送环境,false表示开发,true表示生产;对android和自定义消息无意义
.setApnsProduction(true)
.build())
.build();
以下为代码详解
class PayloadBuild{
/*public static PushPayload buildPushAllPayload(String alert) {//构建一个推送所有平台,所有设备的推送对象
return PushPayload.alertAll(alert);}*/
public static PushPayload buildAndroidWinphonePayload(String registration_id,
String alert,String title) {
return PushPayload.newBuilder()
.setPlatform(Platform.android())//推送平台设置为安卓
//.setAudience(Audience.all())//推送给所有已经下载过app的设备
.setAudience(Audience.registrationId(registration_id))//推送给registration_id对应的设备
// .setAudience(Audience.alias(alias.replace(".", "_")))//推送设备起别名
.setNotification(Notification.newBuilder()//设置通知
.setAlert(alert)//设置通知内容
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(title).build()//设置通知标题
)
.build()
)
.build();
}
}
class PayloadBuild1{
/*public static PushPayload buildPushAllPayload(String alert) {//构建一个推送所有平台,所有设备的推送对象
return PushPayload.alertAll(alert);}*/
public static PushPayload buildAndroidWinphonePayload(String alias,
String alert,String title) {
return PushPayload.newBuilder()
.setPlatform(Platform.android())//推送平台设置为安卓
.setAudience(Audience.all())//推送设备起别名
// .setAudience(Audience.registrationId(""))
// .setAudience(Audience.alias(alias.replace(".", "_")))//推送设备起别名
.setNotification(Notification.newBuilder()//设置通知
.setAlert(alert)//设置通知内容
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(title).build()//设置通知标题
)
.build()
)
.build();
}
}