在Android 4.0以上,我们在手机中有数据使用控制选项.请查看随附的屏幕截图以进一步了解.
http://developer.android.com/about/versions/android-4.0-highlights.html
现在我需要从我的应用程序中检查这些内容(特定时间段/特定日期内所有应用程序的数据使用情况).我怎样才能做到这一点?我也使用以下类来了解网络使用情况.
http://developer.oesf.biz/em/developer/reference/eggplant/android/net/NetworkStatsHistory.html
请检查以下链接图像.我需要开发相同类型的应用程序.
http://developer.android.com/sdk/images/4.0/usage-all-lg.png
http://developer.android.com/sdk/images/4.0/usage-maps-lg.png
感谢您分享您的代码,但我需要知道每个应用程序使用的数据而不是所有应用程序.到目前为止,我在链接中观察到没有人在讨论各个应用程序的数据使用情况.我已经知道如何在设备中显示已安装的应用程序.现在我想知道每个应用程序使用的数据是什么.
我使用以下代码列出设备中已安装的应用程序列表.
private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
ArrayList<PInfo> res = new ArrayList<PInfo>();
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for (int i=0; i<packs.size(); i++) {
PackageInfo p = packs.get(i);
if ((!getSysPackages) && (p.versionName == null)) {
continue ;
}
PInfo newInfo = new PInfo();
newInfo.setAppname(p.applicationInfo.loadLabel(getPackageManager()).toString());
newInfo.setPname(p.packageName);
newInfo.setVersionName(p.versionName);
newInfo.setVersionCode(p.versionCode);
newInfo.setIcon(p.applicationInfo.loadIcon(getPackageManager()));
res.add(newInfo);
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
我如何知道每个应用程序使用的数据是什么?
实际上,我需要一个解决方案,在给定的时间段内(即两天之间)提供应用程序的数据使用.
使用此代码,我可以找到手机的电池电量:
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float percent = (level / (float)scale) * 100;
Run Code Online (Sandbox Code Playgroud)
但是,如何获取手机上安装的应用程序的电池使用情况,包括屏幕上的应用程序,如下图所示?
我目前正在使用以下代码:
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
Run Code Online (Sandbox Code Playgroud)
但它会返回由设备制造商和我安装的应用程序.如何限制它以便只返回我安装的应用程序?
android installed-applications android-package-managers android-applicationinfo
对以下两种Android TrafficStats方法感到困惑: getUidTxBytes(int uid)和getUidRxBytes(int uid),这两种方法返回通过网络为此UID发送和接收的字节数.但它的时间单位是多少,是每秒?如果我想计算每个应用每天传输和接收的数据,我该怎么办.我想过一种方法,在sql中存储数据并继续向表中添加数据.这是正确的方法吗?
(我认为这是一个常见问题,但请不要太快,因为我相信我的答案会为讨论添加一些新内容.)
相关的API是TrafficStats,它从例如/ proc/uid_stat /获取其数据.
统计数据必须包括GCM等,而不仅仅是我发起的内容,因此基于线程和标记的计数器是不够的.
第一个问题是基于UID(即每个应用程序)获得移动数据使用的API显然不存在.有getMobile API和getUid API,但没有任何组合它们.我提出了一个解决方案,作为下面的一个答案.
更重要的是,我得到的印象是TrafficStats有太多的bug可用于这个通用目的.我把它作为一个可能的答案,如果这被接受,那么最好的解决方案是手动计算数据使用量.
有没有办法使用TrafficStats'(getUidRxBytes,getUidTxBytes,getTotalRxbytes,getTotalTXbytes,getMobileRxBytes,getMobileTxBytes)方法计算Android中每个应用程序的移动和wifi使用情况?我知道必须有一些方法可以做到这一点,因为3G看门狗和其他一些应用程序提供了这些细节.
有人可以帮忙吗?谢谢
问题很简单,我如何知道用户在当月使用了多少移动数据(以 GB 或 MB 为单位)?
由于它被报道为题外话,我想澄清一下应该通过应用程序中的代码检查数据使用情况。
是否有一些代码可以用来检查用户使用的数据?
一个Android菜鸟问题。对于用户设备上安装的每个应用程序,一个应用程序是否可以(以编程方式)确定:
其中 (3) 可以是用户点击或数据流量。
Android操作系统是否为此类数据提供API?
预先感谢您的帮助。
如何了解每天的互联网总数据使用情况?
例如,在一天结束时我使用了800mb,那么它应该像"2015年5月20日的800mb的互联网使用率"一样返回.
那么如何检测总数据使用情况呢?
经过大量的谷歌搜索,我只能在发送和接收字节中找到数据使用,但不能在总使用中找到.
并且还想将使用分为wifi和移动数据.
android ×9
battery ×1
collections ×1
java ×1
list ×1
merge ×1
mobile-data ×1
networking ×1
wifi ×1