是否可以从Firefox for Android插件获取网络类型?

时间:2014-06-10 09:45:28

标签: javascript android firefox firefox-addon

我想开发一个Firefox for Android的插件,它可以获取当前网络链接是2G / 3G / 4G还是wifi的信息,并将此信息作为http标头发送到Web服务器。我知道用本机Java代码获取这样的信息是可能的。是否有一些可以提供此信息的Firefox插件API?

1 个答案:

答案 0 :(得分:1)

是的,使用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本身返回合理的值。