Как программно проверить скорость подключения к интернету на android?

Пользователь

от margaret , в категории: Другие , 6 месяцев назад

Как программно проверить скорость подключения к интернету на android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от gussie.jones , 6 месяцев назад

@margaret 

Вы можете использовать библиотеку Android Network Test Library (ANTL) для проверки скорости подключения к интернету на устройствах Android. Вот пример кода, который использует эту библиотеку:

  1. Добавьте зависимость в файл build.gradle вашего проекта:
1
2
3
dependencies {
    implementation 'com.github.pedroSG94.Network-Test-Library:library:2.1.0'
}


  1. Создайте новый класс, например, с названием NetworkSpeedTest, и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import android.os.AsyncTask;
import android.util.Log;

import com.github.pedrofelix.android.network.test.NetworkSpeedTest;
import com.github.pedrofelix.android.network.test.SpeedTestCallback;

public class NetworkSpeedTest extends AsyncTask<Void, Void, Float> {

    private static final String TAG = "NetworkSpeedTest";

    private final SpeedTestCallback speedTestCallback;

    public NetworkSpeedTest(SpeedTestCallback speedTestCallback) {
        this.speedTestCallback = speedTestCallback;
    }

    @Override
    protected Float doInBackground(Void... params) {
        Log.d(TAG, "Starting network speed test");
        NetworkSpeedTest networkSpeedTest = new NetworkSpeedTest();

        // Выполнить тест загрузки
        float downloadSpeed = networkSpeedTest.testDownloadSpeed();
        Log.d(TAG, "Download speed: " + downloadSpeed + " Mbps");

        // Выполнить тест выгрузки
        float uploadSpeed = networkSpeedTest.testUploadSpeed();
        Log.d(TAG, "Upload speed: " + uploadSpeed + " Mbps");

        return downloadSpeed;
    }

    @Override
    protected void onPostExecute(Float downloadSpeed) {
        super.onPostExecute(downloadSpeed);
        speedTestCallback.onSpeedTestCompleted(downloadSpeed);
    }
}


  1. Используйте NetworkSpeedTest в своей активности или фрагменте для запуска теста скорости. Например, в активности MainActivity:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.github.pedrofelix.android.network.test.SpeedTestCallback;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        NetworkSpeedTest networkSpeedTest = new NetworkSpeedTest(new SpeedTestCallback() {
            @Override
            public void onSpeedTestCompleted(float downloadSpeed) {
                Log.d(TAG, "Speed test completed. Download speed: " + downloadSpeed + " Mbps");
            }
        });

        networkSpeedTest.execute();
    }
}


Этот код запустит тест скорости и выведет результаты в журнал Logcat. Обратите внимание, что эта библиотека предназначена только для тестирования скорости в локальной сети и не предназначена для измерения общей скорости подключения к Интернету.