Итак, всем известно, что мы создаем класс, расширяющий CordovaPlugin и переопределяем execute(), а затем создаем мост между JS и родной Java (для Android). Далее мы используем PluginResult, чтобы вернуть результат в JS.
Итак, все это происходит, когда есть запрос, запущенный из JS в Java-плагин. Мой вопрос: как отправить результат обратно в JS (и, следовательно, в HTML) асинхронно?
Я не знаю, будет ли слово асинхронным прямо здесь. Дело в том, что я хочу отправить что-то обратно в JS из синего цвета (скажем, когда wifi становится включенным/отключенным).
Я уже исследовал это, но не получил ничего, что подходит моему делу.
То, что я пробовал, -
-  Создал 
BroadcastReceiver, слушая событияWiFi, используя классWifiManager. - Зарегистрировать приемник.
 -  И, наконец, при нажатии 
Toast, когдаWiFiвключено/отключено, и отправляет результат с помощьюCallbackContextcallbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, "Wifi Connected"))и для отсоединения с другим сообщением. 
  MyPlugin.java 
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
...
public class MyPlugin extends CordovaPlugin {
private WifiReceiver wifiBroadcastReceiver = null;
private CallbackContext callbackContext = null;
...
    public MyPlugin() {     
        wifiBroadcastReceiver = new WifiReceiver();
    ...
    }
    ...
    public boolean execute(String action, final JSONArray args,
            final CallbackContext callbackId) throws JSONException {
        IntentFilter wifiFilter = new IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
        cordova.getActivity().registerReceiver(wifiBroadcastReceiver, wifiFilter);
        this.callbackContext = callbackId;
    ...
    }
    public class WifiReceiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
                if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)) {
                    Toast.makeText(cordova.getActivity(), "Wifi Connected", Toast.LENGTH_SHORT).show();
                    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, "Wifi Connected"));
                } else {
                    Toast.makeText(cordova.getActivity(), "Wifi Disconnected", Toast.LENGTH_SHORT).show();
                    callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, "Wifi Disconnected"));
                }
            }           
        }
}
Порты Toast, но PluginResult не отправляются в JS.
  PS: Прослушивание событий WiFi не является моей реальной проблемой, я хочу реплицировать приложение Android Bluetooth Chat в Phonegap. Таким образом, он должен быть асинхронным по своей природе.