TrafficStats Специальное приложение - конкретный сетевой интерфейс - PullRequest
1 голос
/ 06 марта 2012

Я знаю, что могу использовать следующие методы Trafficstats API для получения байтов, отправленных и полученных для ВСЕХ сетевых интерфейсов для любого данного приложения. Но как мне получить статистику только для мобильных? Так что я могу разделить мобильные и Wi-Fi данных.

getUidTxBytes (int uid)
Получить количество байтов, отправленных через сеть для этого UID.

getUidRxBytes (int uid)
Получить количество байтов, полученных через сеть для этого UID.

Похоже, что-то подобное отсутствует в API. И другой способ получить это getUidMobileRxBytes (int uid)

Ответы [ 2 ]

1 голос
/ 11 июня 2012
package com.formation.traficstates;

import android.app.Activity;
import android.app.AlertDialog;
import android.net.TrafficStats;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

public class TraficstatesActivity extends Activity {

    private Handler mHandler=new Handler();;

    private long mStartRX;





    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        mStartRX=TrafficStats.getTotalRxBytes();

        if (mStartRX == TrafficStats.UNSUPPORTED) {

            AlertDialog.Builder alert = new AlertDialog.Builder(this);

            alert.setTitle("Uh Oh!");

            alert.setMessage("Your device does not support traffic stat monitoring.");

            alert.show();

        } else {

            mHandler.postDelayed(mRunnable, 1000);

        }  
    }

    private final Runnable mRunnable = new Runnable() {

        public void run() {


        long rxBytes = TrafficStats.getTotalRxBytes()- mStartRX;

        TextView RX = (TextView)findViewById(R.id.textViewRX);

        RX.setText("\nbytes recreived :"+Long.toString(rxBytes));


        }

        };

}
0 голосов
/ 06 марта 2012

Извините, но вы можете получать статистику по каждому интерфейсу всего устройства, но не по UID.

Вы можете оценить статистику по каждому интерфейсу, по UID, собрав как статистику по всему интерфейсу, по UID, так и статистику по всему интерфейсу, а затем предположить, что соотношение интерфейсов для всего устройства равно примерно соотношение, которое будет для этого индивидуального UID. Для коротких промежутков времени это может быть достаточно точным, поскольку устройство будет периодически переключать интерфейсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...