我想为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本身返回合理值,它就应该始终返回合理值。

07-24 09:44
查看更多