我一直在尝试实施notnoop APNS项目,以便向iOS设备发送推送通知,但我通过控制台收到此输出:
线程“main”中的异常java.lang.RuntimeException:十六进制字符无效:v 在com.notnoop.apns.internal.Utilities.charVal(Utilities.java:133) 在com.notnoop.apns.internal.Utilities.decodeHex(Utilities.java:120) 在com.notnoop.apns.EnhancedApnsNotification。(EnhancedApnsNotification.java:72) 在com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:54) 在com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36) 在com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:45) 在PushServiceTryout.main(PushServiceTryout.java:16)
关于我做错了什么的任何想法?我能感觉到我快到了!提前谢谢。
编辑:这是代码。无论如何,一旦我运行程序,我就会收到错误:s
import com.notnoop.apns.APNS;
import com.notnoop.apns.ApnsService;
public class PushServiceTryout
{
public static void main(String[] args)
{
ApnsService service = APNS.newService()
.withCert("c:/fcertificates.p12", "1234")
.withSandboxDestination()
.build();
String msg = "Hello";
String payload = APNS.newPayload().alertBody(msg).build();
String token = "deviceToken";
service.push(token, payload);
}
}
答案 0 :(得分:3)
这是错误:
String token = "deviceToken";
你不能使用String" deviceToken"作为设备令牌。设备令牌由64个十六进制字符组成(例如:" 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef")。当然,您也不能使用随机十六进制字符串。您应该使用从安装了应用程序的设备发送给您的设备令牌。
您的String中的第一个非十六进制字符的异常恰好是v
。