使用蜂窩數據和WiFi數據的記錄我要訪問的數據使用的Android手機應用程序級別。訪問在Android手機
在我的手機棒棒糖5.1,它提供了數據使用的一個美麗的圖形&設置來限制使用。我認爲這個功能來自Kitkat更新。
我希望這個紀錄,如果沒有公共API,是否有任何其他方式做到這一點?
使用蜂窩數據和WiFi數據的記錄我要訪問的數據使用的Android手機應用程序級別。訪問在Android手機
在我的手機棒棒糖5.1,它提供了數據使用的一個美麗的圖形&設置來限制使用。我認爲這個功能來自Kitkat更新。
我希望這個紀錄,如果沒有公共API,是否有任何其他方式做到這一點?
首先,要獲取數據,你應該使用UsageStatsManager或ActivityManager,這取決於SDK版本您正在使用。下面是一個簡單的例子來獲得當前正在運行的應用程序的名稱:
String currentApp = "NULL";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager usm = (UsageStatsManager) activity.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time);
if ((appList != null) && (appList.size() > 0)) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if ((mySortedMap != null) && (!(mySortedMap.isEmpty()))) {
currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
} else {
ActivityManager activityManager = (ActivityManager) currentlyDisplayedScreen.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE);
currentApp = services.get(0).topActivity.getPackageName().toString()
}
這些類可以用來獲得其他有用的數據,以及包括每個應用程序有多少時間是在前臺。如果您使用此,您將需要以下權限:
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />
我不知道你是否可以複製使用統計圖表本身,而是我用Android的畫布上繪製各種東西,包括豐富多彩顯示不同類別數據的圖表。您可以創建自定義視圖,其覆蓋的onDraw()方法,根據當前的數據繪製圖表您有:
public class StatisticsChartView extends View {
...
@Override
protected void onDraw(Canvas canvas) {
if (values != null) {
float sliceStartPoint = 200;
path.addCircle(rectF.centerX(), rectF.centerY(), 250, Direction.CW);
canvas.clipPath(path, Op.DIFFERENCE);
...
}
我的假設是,你想擁有自己的應用程序中的圖表,但如果你想你可以簡單地用一個適當的意圖啓動設備的Android的數據使用屏幕: Which Intent for Settings - Data usage 但是,那麼你只是瀏覽到外部屏幕。
試試這個ANS http://stackoverflow.com/a/24535172/3678308 –