Как выбрать режим интернет-соединения Android - PullRequest
0 голосов
/ 28 июня 2018

Я сделал приложение для Android, которое используется для обмена файлами с ПК.

Компьютер и устройство подключены к одной сети, и все работает очень хорошо.

Но так как я поставил сим-карту 4g, передача больше не производится, кто-нибудь знает, как решить эту проблему?

Должен ли быть способ заставить мое приложение использовать только Ethernet-соединение?

Разрешения:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Как проверить соединение:

public static Boolean isConnected(Context context) {
    ConnectivityManager cm =
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = null;
    if (cm != null) {
        activeNetwork = cm.getActiveNetworkInfo();
    }
    boolean isEthernet = false;
    if (activeNetwork != null) {
        isEthernet = activeNetwork.getType() == ConnectivityManager.TYPE_ETHERNET;
    }
    return activeNetwork != null &&
            activeNetwork.isConnectedOrConnecting() && isEthernet;
}

Основная функция:

public void sendFilesInFolder(Boolean bool) {
    if (isConnected(MainActivity.this)) {
        ProgressBar progressBar;
        if (bool) progressBar = mProgressBarD;
        else progressBar = mProgressBarM;
        fileSender = new FileSender(prefs.getString("ip_adress", null),
                Integer.valueOf(prefs.getString("port_dest", null)),
                bool, colisageBase, progressBar);
        fileSender.execute();
    } else {
        Toast.makeText(MainActivity.this, getString(R.string.no_connection), Toast.LENGTH_SHORT).show();
    }
}
...