簡體   English   中英

如何編寫服務以跟蹤Android設備上的gprs數據使用情況

[英]How to write a service to keep track of gprs data usage on android device

我想在android中編寫一個服務,它將跟蹤后台的數據使用情況。 當捕獲數據使用事件時,我會將詳細信息保存在本地數據庫中。

我在android中讀到了關於TrafficStats的類,但它只會在活動開始時檢查一次。 我想要一個連續的后台進程運行。

我甚至找到了一個示例項目 - https://github.com/commonsguy/cw-andtuning/tree/master/TrafficMonitor

正如帖子中提到的 - 如何衡量我的應用程序的數據使用情況

提前致謝。

您需要執行以下操作:

  • 創建將存儲數據使用值的本地數據庫。

  • 啟動連續/定期運行的服務以計算/重新計算數據使用情況。

  • 在服務計算數據使用情況后,將數據添加到數據使用表中。

要創建本地數據庫,可以參考sqlite上的本教程

以下是如何啟動服務在Android中創建服務的方法

編輯

如果有任何新數據使用,則無法獲得通知。您必須使用將連續或定期運行的服務定期檢查它。

您可以使用以下代碼計算用法:

int UID=Process.myUid();
long recived = TrafficStats.getUidRxBytes(UID);
long send = TrafficStats.getUidTxBytes(UID);

您可以根據需要使用的其他功能包括:

long initialRX = TrafficStats.getTotalRxBytes();// recieved
long initialTx = TrafficStats.getTotalTxBytes();// sent
long initialMobRX = TrafficStats.getMobileRxBytes();
long initialMobTx = TrafficStats.getMobileTxBytes();

請記住 ,TrafficStats返回一個累積值。因此,您必須減去initail值才能知道使用量的增量

此外 ,當電話關閉時,每當進程被殺死時,TrafficStats計數器都會被重置。 因此,您將不得不添加代碼來處理它。

相關鏈接:
TrafficStats Api android和日常數據使用量的計算

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM