我想为Android的Firefox开发一个插件,它可以获取当前网络链接是2G / 3G / 4G还是wifi的信息,并将此信息作为http标头发送到Web服务器。我知道可以通过本机Java代码获得此类信息。是否有一些Firefox插件API可以提供此信息?
最佳答案
是的,使用nsINetworkLinkService
// Where Cc and Ci are shortcuts for Components.classes and .interfaces
let network = Cc["@mozilla.org/network/network-link-service;1"].
getService(Ci.nsINetworkLinkService);
console.log(network.linkType);
有关
.linkType
的值,请参见interface definition,例如.linkType == Ci.nsINetworkLinkService.LINK_TYPE_4G
。该服务应该在所有平台上都可用,但是某些平台(例如,在撰写本文时为OSX)可能只有存根总是在返回
LINK_TYPE_UNKNOWN
或访问.linkType
属性时直接抛出异常。在Android上,只要Android本身返回合理值,它就应该始终返回合理值。