说明: 我试图在android中找到已安装应用程序的数据,电池和内存使用情况。我已经尝试了很多东西来从API 22到以后的数据使用。我使用TrafficStats来获取每个应用程序的数据使用情况,包括from和to time。
我收到了负片格式的数据。
我在这里发布了以下代码:
public void getPakagesInfoUsingHashMap() {
final PackageManager pm = getActivity().getPackageManager();
// get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(0);
// loop through the list of installed packages and see if the selected
// app is in the list
for (ApplicationInfo packageInfo : packages) {
// get the UID for the selected app
int UID = packageInfo.uid;
String package_name = packageInfo.packageName;
ApplicationInfo app = null;
try {
app = pm.getApplicationInfo(package_name, 0);
} catch (PackageManager.NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String name = (String) pm.getApplicationLabel(app);
Drawable icon = pm.getApplicationIcon(app);
// internet usage for particular app(sent and received)
double received = (double) TrafficStats.getUidRxBytes(UID)
/ (1024 * 1024);
double send = (double) TrafficStats.getUidTxBytes(UID)
/ (1024 * 1024);
double total = received + send;
if(total>0)
{
Log.e(name,String.format( "%.2f", total )+" MB");
}
}
}
代码说明:它将打印已安装的应用程序名称以及每个应用程序的数据用法。
注意:我已在API级别7.0(牛轧糖)中安装了我的应用程序。
我在互联网上阅读了很多博客,但我找不到这个特定问题的真正解决方案。
很少有博客建议我找到NetworkStatManager。我没有从NetworkStatManager获取GB格式的MB数据。
请帮我解决。