2016-05-20 10 views
2

зарегистрировать приемник для действияAndroid: WiFi p2p отключить событие (не инвалидов)

WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION 

В onReceive() я получаю эту акцию и сравнить EXTRA_WIFI_STATE на это два случая

case WifiP2pManager.WIFI_P2P_STATE_ENABLED: 

    case WifiP2pManager.WIFI_P2P_STATE_DISABLED: 

Однако я нужно знать, когда Wi-Fi будет отключен, но еще не отключен, чтобы вызвать некоторые методы WifiP2pManager. Я должен позвонить по телефону

manager.clearLocalServices 

перед тем как Wi-Fi отключен, в противном случае он не работает, и служба не удаляется. Как я могу получить событие «отключение»?

+0

Я сделал замечание, что служба удаляется при отключении Wi-Fi. – p2pkit

+0

Почему другие близлежащие устройства все еще видят это? – user3290180

+0

Если я очищаю службу, когда Wi-Fi включен, другие перестают ее видеть. Вот почему я должен перехватить событие «отключение» – user3290180

ответ

0

Я думаю, что здесь есть недоразумение. Большинство приложений, которые используют Wifi Прямой поиск для сверстников и поддерживают список доступных одноранговых узлов.

Однако вы часто обнаружите, что реализации не удаляют сверстников, когда они больше не доступны. Когда WifiP2pManager.WIFI_P2P_STATE_DISABLED, то по определению устройство больше не доступно другим аналогам. Таким образом, любые сверстники, которые считают, что устройство все еще доступно, вероятно, просто не обновили список «доступных» одноранговых узлов, то есть они не проверили, какие устройства все еще доступны.

Для проверки правильности поведения вы должны попытаться найти устройство ПОСЛЕ того, как состояние изменилось на WIFI_P2P_STATE_DISABLED. Если одноранговые узлы все еще могут найти ваше устройство после этого события, тогда есть фундаментальная ошибка в реализации Android, и я сомневаюсь.

 Смежные вопросы

  • Нет связанных вопросов^_^