如何抓取網路連線使用狀況資料 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
本主題示範如何使用 Windows.Networking.Connectivity 命名空間中的類別,存取特定一段時間的網路連線頻寬使用量資訊。
如需使用這些物件抓取連線設定檔和存取資訊的一般指導,請參閱如何抓取網路連線資訊。
您必須知道的事
技術
先決條件
下列範例使用 JavaScript,並且使用網路資訊範例做為依據。 如需使用 JavaScript 建立 Windows 執行階段應用程式的一般協助,請參閱使用 JavaScript 建立您的第一個 Windows 執行階段應用程式。
抓取過去一小時的網際網路連線成本資料
下列範例函式會為網際網路連線抓取 ConnectionProfile。為了抓取所需資料,會將系統 DateTime (currTime) 和 startTime 值傳遞至 getNetworkUsageAsync 方法。傳回的 NetworkUsage 物件包含要求期間內的已傳送和已接收值 (位元組)。
針對行動應用程式案例,您可以將 RoamingStates 值新增至 getNetworkUsageAsync 呼叫,以便將要求的流量資料範圍設定在裝置處於漫遊狀態的期間。
var networkInfo = Windows.Networking.Connectivity.NetworkInformation;
function DisplayLocalDataUsage() {
var currTime = new Date();
//Set start Time to 1 hour (3600000ms) before current time
var startTime = new Date(currTime - 3600000);
//Get the ConnectionProfile that is currently used to connect to the Internet
var connectionProfile = networkInfo.getInternetConnectionProfile();
var LocalUsage = connectionProfile.getNetworkUsageAsync(startTime, currTime);
var lclString = "Local Data Usage: \n\r";
lclString += "Bytes Sent: " + LocalUsage.bytesSent + "\n\r";
lclString += "Bytes Received: " + LocalUsage.bytesReceived + "\n\r";
}
注意 針對未提供網際網路連線的連線,請遵循類似的程序以抓取時間特定成本資訊。其差異在於使用 NetworkInformation.getConnectionProfiles 初次列舉可用的連線設定檔。
Windows 市集應用程式和 Windows Phone 市集應用程式的行為差異
GetNetworkUsageAsync 方法在 Windows 8.1 和 Windows Phone 8.1 有不同的行為。在 Windows Phone 呼叫 GetNetworkUsageAsync 方法時,傳回的 NetworkUsage 物件陣列的 ConnectionDuration 屬性一律設定為 0,因為 Windows Phone 不支援此屬性。
相關主題
其他
使用 JavaScript 建立您的第一個 Windows 執行階段應用程式
參考
ConnectionProfile.getNetworkUsageAsync
NetworkInformation.getConnectionProfiles
Windows.Networking.Connectivity
範例