我一直在尝试使用 Urban Airship 提供的服务器端 API 与我的 Android 应用程序集成。我正在尝试从我的 Android 应用程序中获取在 Urban Airship 服务器中注册的所有 APID。尽管我已经注册了 3 个设备(模拟器注册)并且我可以在 https://go.urbanairship.com/api/apids/ 中查看它们,但我总是得到一个 Null 值分别使用我的应用程序 key 和密码作为用户名和密码登录后。
Urban Airship 提供了使用公开的服务器端 REST api 的方法(jave 代码)。开发人员必须为 Urban Airship 未提供的功能编写自己的方法。没有获取 APIDs 的方法,因此我按照其他方法编写了这个方法。
public DeviceTokensResponse getApids() throws URISyntaxException
{
return get(DeviceTokensResponse.class, "/api/apids/");
}
我使用相同的服务器端 API 通过 API/api/device_tokens/成功获取存储在 Urban Airship 服务器中的 iPhone 设备 token 。 在获取 iPhone 设备 token 的代码下方找到。这给出了预期的结果。
public DeviceTokensResponse getDeviceTokens() throws URISyntaxException
{
return get(DeviceTokensResponse.class, "/api/device_tokens/");
}
很抱歉我问了一个关于像 Urban Airship 这样的特定产品的问题。看到Urban Airship的创始人活跃在这个论坛,所以就毫不犹豫的发了这个问题。请帮我解决这个问题。
最佳答案
我通过创建一个名为 ApidList.java(具有 List 属性)和 Apid.java(具有与 json 标签键名对应的属性)的自定义类解决了这个问题。一旦存在 json 键名和类属性的一对一映射,就会正确填充响应对象。如果映射失败,则返回一个空对象(这就是我之前发生的事情)
关于android - Urban Airship 。使用/api/apids/method 获取 Android APID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7589090/