Intereting Posts
В android 4.4, прокручивание приложения из последних задач постоянно убивает приложение своим сервисом. Любая идея почему? Как сообщить своему пользовательскому FragmentPagerAdapter прекращение уничтожения моих фрагментов? Дооснащение getBodyAs () не позволяет проанализировать ошибку сервера Влияние использования Multidex на производительность приложения, стабильность, совместимость …? Android-текст в речь на разных языках Release-Debug Builds для Android-приложений Захват рейтинга Как сделать слайд, чтобы разблокировать кнопку в android Как обновить Android ListView динамическими данными в реальном времени? Android Studio 1.0 слишком медленно Защита Bluetooth от безопасности Печать списка <String> для logcat Определите собственный андроид моего приложения: versionCode во время выполнения SetExactAndAllowWhileIdle – не является точным по ссылке разработчика Возможно ли резервное копирование и RESTORE файл базы данных в android? Не root-устройства

Как программно показать использование данных для всех приложений?

В 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; } 

Как узнать, какие данные используются каждым приложением?

На самом деле, мне нужно решение, которое позволяет использовать данные приложений в определенный период времени, то есть между двумя днями.

Solutions Collecting From Web of "Как программно показать использование данных для всех приложений?"

Во-первых, получите список всех запущенных приложений:

 List<RunningAppProcessInfo> 

Затем получите UID каждого приложения и затем отправьте и получите трафик приложения:

 // Get running processes ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<RunningAppProcessInfo> runningApps = manager.getRunningAppProcesses(); for (RunningAppProcessInfo runningApp : runningApps) { // Get UID of the selected process int uid = ((RunningAppProcessInfo)getListAdapter().getItem(position)).uid; // Get traffic data long received = TrafficStats.getUidRxBytes(uid); long send = TrafficStats.getUidTxBytes(uid); Log.v("" + uid , "Send :" + send + ", Received :" + received); } 

Вы можете использовать android.net.TrafficStats для получения информации об использовании сети.

Пожалуйста, найдите пример программы ниже для этого.

 package com.anchit.trafficstatus; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; public class TrafficStatus extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e("bytes recvd", "" + android.net.TrafficStats.getMobileRxBytes()); Log.e("Total", "Bytes received" + android.net.TrafficStats.getTotalRxBytes()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }