此程序需要Javapns 2.2版本。
import java.util.ArrayList; import java.util.List; import javapns.Push; import javapns.devices.Device; import javapns.devices.implementations.basic.BasicDevice; import javapns.notification.AppleNotificationServerBasicImpl; import javapns.notification.PushNotificationManager; import javapns.notification.PushNotificationPayload; import javapns.notification.PushedNotification; import org.apache.commons.lang.StringUtils; public class ApnsSend { public static void main(String[] args) throws Exception { String deviceToken = "d7e6132895b388cf016433167c9e2d97fe4b76ca5a1692209a3b6e3cb3fdcd9c"; String alert = "我的push測試";//push的內容 int badge = 100;//圖標小紅圈的數值 String sound = "default";//鈴音 List<String> tokens = new ArrayList<String>(); tokens.add(deviceToken); String certificatePath = "D:/PushDev.p12"; String certificatePassword = "123456";//此處注意導出的證書密碼不能為空因為空密碼會報錯 boolean sendCount = true; try { PushNotificationPayload payLoad = new PushNotificationPayload(); payLoad.addAlert(alert); // 消息內容 payLoad.addBadge(badge); // iphone應用圖標上小紅圈上的數值 if (!StringUtils.isBlank(sound)) { payLoad.addSound(sound);//鈴音 } PushNotificationManager pushManager = new PushNotificationManager(); //true:表示的是產品發布推送服務 false:表示的是產品測試推送服務 pushManager.initializeConnection(new AppleNotificationServerBasicImpl(certificatePath, certificatePassword, false)); List<PushedNotification> notifications = new ArrayList<PushedNotification>(); // 發送push消息 if (sendCount) { Device device = new BasicDevice(); device.setToken(tokens.get(0)); PushedNotification notification = pushManager.sendNotification(device, payLoad, true); notifications.add(notification); } else { List<Device> device = new ArrayList<Device>(); for (String token : tokens) { device.add(new BasicDevice(token)); } notifications = pushManager.sendNotifications(payLoad, device); } List<PushedNotification> failedNotifications = PushedNotification.findFailedNotifications(notifications); List<PushedNotification> successfulNotifications = PushedNotification.findSuccessfulNotifications(notifications); int failed = failedNotifications.size(); int successful = successfulNotifications.size(); pushManager.stopConnection(); } catch (Exception e) { e.printStackTrace(); } } }