получение "undefined не является функцией" при попытке добавить новую функцию в существующую собственную библиотеку реагирования - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь добавить новую функцию в существующую собственную библиотеку реагирования, которая называется response-native-system-setting , для моего приложения мне нужно иметь возможность имитировать ключевые события для воспроизведения, приостановки и пропуска песен. на различных медиаплеерах, как описано здесь , поэтому я добавил функцию "MediaControl" в response-native-system-setting library:

public SystemSetting(ReactApplicationContext reactContext) {
    super(reactContext);
    mContext = reactContext;
    reactContext.addLifecycleEventListener(this);
    am = (AudioManager) mContext.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
    wm = (WifiManager) mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    lm = (LocationManager) mContext.getApplicationContext().getSystemService(Context.LOCATION_SERVICE);

    listenVolume(reactContext);
}

@ReactMethod
public void MediaControl(String Command ) {
long eventtime = SystemClock.uptimeMillis();

    switch (Command) {
        case "next":
            KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT, 0);
            am.dispatchMediaKeyEvent(downEvent);

            KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT, 0);
            am.dispatchMediaKeyEvent(upEvent);

        case "previous":
            KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
            am.dispatchMediaKeyEvent(downEvent);

            KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
            am.dispatchMediaKeyEvent(upEvent);

        case "play":
            KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
            am.dispatchMediaKeyEvent(downEvent);

        case "pause":
            KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
            am.dispatchMediaKeyEvent(upEvent);
    }
}

он хорошо работает на Android Studio, но когда я пытаюсь использовать функцию, я получаю сообщение об ошибке:

undefined is not a function (evaluating '_reactNativeSystemSetting2.default.MediaControl("play")')

я что-то упустил?

...