2014-06-10 55 views
1

我想開發一個適用於Android的Firefox插件,它可以獲取當前網絡鏈接是2G/3G/4G還是wifi的信息,並將這些信息作爲http頭髮送到Web服務器。我知道有可能通過本機Java代碼獲得這樣的信息。有一些Firefox插件API可以提供這些信息嗎?是否有可能從Firefox的android插件獲取網絡類型?

+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本身返回理智值。

+0

感謝您的幫助。但它似乎已被刪除,由於某種原因:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINetworkLinkService –

+0

我剛剛測試與Aurora(31)和'linkType'被設置爲正確的值。也許文檔已經過時了。 – paa

+0

文檔錯誤。 [它重新實現](https://bugzilla.mozilla.org/show_bug.cgi?id=939680)顯然在mozilla28(Firefox 28)中。 – nmaier

相關問題