Вопрос

Я зарегистрировался ConnectivityManager.CONNECTIVITY_ACTION Broadcastreceiver, для получения сетевых государственных мероприятий, но мой onReceive Функция не вызывается, когда я включаю или выключаю Wi -Fi -соединение.

Как упоминалось в документах, это липкий вещательный приемник, который уволяется, когда мы регистрируемся для него.

Но я не получаю никаких событий в своем onReceive Функция, когда я регистрируюсь для этого приемника, что может быть причиной?

В моем манифестном файле у меня есть все разрешения на доступ к подключениям к Интернету/сети/Wi -Fi и их штатам.

Я регистрируюсь с этим намерением, используя следующий код:

registerReceiver(mNetworkStateReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

В моем logcat я получаю следующий регистр сообщений об ошибке для этого вещательного приемника:

01-01 00:05:29.804: ERROR/WifiHW(1305): Unable to open connection to supplicant on "/data/system/wpa_supplicant/wlan0": Connection refused

Что может быть причиной? Есть ли способ выяснить, правильно ли зарегистрирован или нет?

Спасибо.

Это было полезно?

Решение

Это работает для меня:

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

<receiver android:name=".receiver.ConnectivityReceiver">
   <intent-filter>
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
   </intent-filter>
</receiver>

Код:

public class ConnectivityReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
      Log.d(ConnectivityReceiver.class.getSimpleName(), "action: "
              + intent.getAction());
  }
}

и не забывайте регистрировать все разрешения сети.

Другие советы

Попробуйте, используя манифестный файл

<receiver android:name=".MyNetworkStateReceiver" >
    <intent-filter >
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

класс MyNetworkStateReceiver должен расширить BroadcastReceiver

Похоже на проблему более низкого уровня - Google Ошибка раскрывает несколько взломанных форумов ROM и их неисправности Wi -Fi. На что вы тестируете? Попробуйте тестирование на другом устройстве или эмуляторе. (Я предполагаю, что вы попытались перезагрузить свой :))

Кроме того, убедитесь, что вы не регистрируете приемник, когда ваша деятельность/служба уничтожаются (возможно, это как -то связано с ошибкой соединения)

PS я знаю, что вы сказали, что делаете, но все же дважды проверьте

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

в вашем манифесте.

Вы также можете попробовать получить разрешения на интернет, Wi -Fi и многоадресную блокировку, попробуйте добавить их в разрешения.

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

Я обязан использовать это разрешение для приложения в доме, которое я создал, в котором используется не только Wi -Fi для отправки и получения сетевых данных, но и любого типа сетевого адаптера (LAN, радио), который я могу отфильтровать через SDK в C (устройство Должен быть укоренился). Но используя эти разрешения, у меня нет проблем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top