Почему BroadcastReceiver не работает в React Native? - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь разработать приложение, которое в будущем может запустить службу, службу, которую я хочу запустить при подключении к сети.На данный момент мне нужен только приемник, чтобы распечатать в журнале (используя реактивный лог-андроид), который был подключен или отключен, или визуализировать тост с сообщением, все это на заднем плане, а не на переднем плане.

Попробуйте следующее, сначала я поместил получатель в AndroidManifest.xml

<application>
  ...
  <receiver android:name="com.air_fighers_react_native.receiver.NetworkChangeReceiver">
    <intent-filter>
      <action android:name="android.net.conn.CONECTIVITY_CHANGE"/>
    </intent-filter>
  </receiver>
</application>

Даже добавьте разрешения:

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

Создайте папку получателя в java> com>air_fighters_react_native> получатель и внутри файла NetworkChangeReceiver.java со следующим кодом:

package com.air_fighters_react_native.receiver;

import android.content.BroadcastReceiver
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class NetworkChangeReceiver extends BroadcastReceiver {
  public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "Cambio de conexion.", Toast.LENGTH_LONG).show();
  }
}

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

<receiver android:name=".NetworkChangeReceiver">

И изменить NetworChangeReceiver на тот же уровень, что и MainApplication и MainActivity в папках.

...