¿Cómo obtener una notificación cuando un dispositivo se conecta a su android wifi tethering AP?

Permito wi-fi tethering a través de mi aplicación en mi dispositivo Android. ¿Cómo puedo obtener una notificación en mi aplicación cuando alguien se conecta a la red Wi-Fi atada por mi aplicación? ¿Necesito registrarme para algunos receptores de difusión específicos?

He pegado debajo del código fuente de la aplicación

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ((ToggleButton) findViewById(R.id.toggle_tethering)).setOnCheckedChangeListener(this); } @Override public void onCheckedChanged(CompoundButton button, boolean isChecked) { WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); Boolean result = false; WifiConfiguration config = new WifiConfiguration(); config.SSID = "Tab3OpenWifi"; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); String setWifiApConfigurationMethodName = "setWifiApConfiguration"; Method setWifiApConfigurationMethod = wifiManager.getClass().getMethod(setWifiApConfigurationMethodName, WifiConfiguration.class); result = (Boolean) setWifiApConfigurationMethod.invoke(wifiManager, config); if (result) { String setWifiApEnableMethodName = "setWifiApEnabled"; Method setWifiApEnableMethod = wifiManager.getClass().getMethod(setWifiApEnableMethodName, WifiConfiguration.class, boolean.class); String message; if (isChecked) { result = (Boolean) setWifiApEnableMethod.invoke(wifiManager, null, true); if (result) { message = "Enabling tethering successfully"; } else { message = "Enabling tethering failed"; } } else { result = (Boolean) setWifiApEnableMethod.invoke(wifiManager, null, false); if (result) { message = "Disabling tethering successfully"; } else { message = "Disabling tethering failed"; } } Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Failed to update Wifi Tethering config.", Toast.LENGTH_SHORT).show(); } } 

Utilicé por debajo del receptor de difusión para obtener el estado de AP.

 private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.d(TAG,"mReceiver.onReceive>>"); String action = intent.getAction(); if (WIFI_AP_STATE_CHANGED_ACTION.equals(action)) { Log.d(TAG,"WIFI_AP_STATE_CHANGED_ACTION"); } else if (ACTION_TETHER_STATE_CHANGED.equals(action)) { ArrayList<String> available = intent.getStringArrayListExtra( EXTRA_AVAILABLE_TETHER); ArrayList<String> active = intent.getStringArrayListExtra( EXTRA_ACTIVE_TETHER); ArrayList<String> errored = intent.getStringArrayListExtra( EXTRA_ERRORED_TETHER); Log.d(TAG,"==Available=="); for(String str : available) Log.d(TAG, ""+str); Log.d(TAG,"==Active=="); for(String str : active) Log.d(TAG, ""+active); Log.d(TAG,"==Error=="); for(String str : errored) Log.d(TAG, ""+str); } else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) { } Log.d(TAG,"mReceiver.onReceive<<"); } }; 

One Solution collect form web for “¿Cómo obtener una notificación cuando un dispositivo se conecta a su android wifi tethering AP?”

No creo que haya una API para eso, ni ningún evento de difusión que puedas escuchar.

La única opción que puedo pensar es operando a un nivel inferior, es decir, el nivel del núcleo. No soy un experto, pero he usado para monitorear el archivo / proc / net / tcp para buscar conexiones abiertas. Ese puede ser un punto de partida para usted.

También escribí una biblioteca simple, si usted quiere conseguir una ojeada de cómo lo hice. Puede encontrarlo aquí: https://github.com/dextorer/AndroidTCPSourceApp

  • Velocidad de análisis WiFi más rápida para obtener cambios rssi android
  • Cómo obtener el estándar wifi
  • ¿Se puede utilizar MulticastLock de Android para monitorear solicitudes de sondeo 802.11 desde otros dispositivos?
  • ¿Cómo mantiene Google actualizada su base de datos de geolocalización?
  • Wifi y 3G a la misma hora
  • Cómo enviar MAC marco de datos de difusión con Android AP
  • ¿Cuál es la diferencia entre la exploración activa y la exploración pasiva?
  • Android: ¿Cómo obtener la encriptación Wifi actual?
  • Android prueba la conexión wifi programáticamente
  • Supervisión del WiFi en el dispositivo Android
  • Especifique el canal (o frecuencia) para la exploración Wi-Fi en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.