Вот решение для прослушивания изменений состояния привязки:
Сначала вы должны быть знакомы с BroadcastReceiver.вы можете найти много учебников (google: как прослушать изменения подключения ...)
Чтобы получить обновление состояния Tethering, вам нужно использовать скрытое действие фильтра Android (см. ConnectivityManager)
и в вашем классе BroadcastReceiver:
IntentFilter filter = new IntentFilter("android.net.conn.TETHER_STATE_CHANGED");
затем зарегистрируйте фильтр в свой BroadcastReceiver:
myApplicationContext.registerReceiver(this, filter);
в вашем методе onReceive (конечный контекст, конечное намерение)информация Intent.extras содержит 3 массива, заполненных соответствующим привязанным сетевым интерфейсом: erroredArray / availableArray / activeArray
Немного сложно, но вы можете получить информацию о состоянии привязки.
Кроме тогоВы можете поразмышлять о скрытой функции кода Android:
Поиск getTetherableIfaces()
в диспетчере подключений.
Вот ссылка: https://github.com/android/platform_frameworks_base/blob/master/core/java/android/net/ConnectivityManager.java#L1604