是否有一种使用WURFL API基于一组所需功能以编程方式生成受支持设备列表的有效方法?
例如,我有两个版本的应用程序;诺基亚Series60版本2手机(Symbian 7/8)和诺基亚Series60版本3手机(Symbian 9)上运行的版本。我需要从WURFL中获取所有这样的手机,以便在“支持的手机”页面上显示,并检查尝试下载的用户的UA,以便我可以将它们传递给应用程序的正确版本。
从概念上讲,我认为我正在寻找这样的事情:
return all devices that have capabilities := device_os == Symbian OS && nokia_series == 60 && (nokia_edition == 2 || nokia_edition == 3)
我希望用Java做到这一点。
答案 0 :(得分:1)
我建议使用new Java WURFL API来加载和遍历功能数据库。这种方式非常灵活,您应该能够非常快速地实现伪代码。
答案 1 :(得分:1)
所有其他答案都讨论了如何使用Java WURFL API。但是,为了加快运行时的搜索速度,我建议在内存中存储一个hashmap或字典,将用户代理字符串(或原始字符串的精简版本)映射到相应的设备信息。数据总量不应该那么大 - 仅仅是兆字节的数量级。此外,WURFL数据是相当静态的,因此可以离线预处理整个数据集以构建散列映射。我通常会定期预处理和更新hashmap,序列化对象,并在运行时加载它。
答案 2 :(得分:0)
我不知道此任务的API。我必须自己处理这个问题并最终编写一个公共网站来处理它:http://wurfl.ditherandbicker.com/
由于基本WURFL XML文件是为可移植性而构建的,因此必须通过从可变数量的“后备设备”中读取来获取设备的完整功能矩阵。许多其他基于WURFL的项目表现相同。根据我的经验,如果您希望通过搜索获得任何合适的速度,您确实需要将默认的嵌套数据结构转换为平面数据结构。当然,那时你会失去便携性的好处。