Преобразование AlarmClock EXTRA_DAYS для JNI callObjectMethod в Qt 5.13
Здравствуйте!
Возникла необходимость установить будильник по дням недели в Qt.
Будильник нормально работает со следущим кодом (без задания дней недели, однократно):
QAndroidJniObject ACTION_SET_ALARM = QAndroidJniObject::getStaticObjectField<jstring>("android/provider/AlarmClock", "ACTION_SET_ALARM"); QAndroidJniObject intent("android/content/Intent", "(Ljava/lang/String;)V", ACTION_SET_ALARM.object<jstring>()); QAndroidJniObject EXTRA_MESSAGE = QAndroidJniObject::getStaticObjectField<jstring>("android/provider/AlarmClock", "EXTRA_MESSAGE"); QAndroidJniObject messageObject = QAndroidJniObject::fromString(message); intent.callObjectMethod("putExtra", "(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;", EXTRA_MESSAGE.object<jstring>(), messageObject.object<jstring>()); QAndroidJniObject EXTRA_LENGTH = QAndroidJniObject::getStaticObjectField<jstring>("android/provider/AlarmClock", "EXTRA_HOUR"); intent.callObjectMethod("putExtra", "(Ljava/lang/String;I)Landroid/content/Intent;", EXTRA_LENGTH.object<jstring>(), jint(hour)); QAndroidJniObject EXTRA_MINUTES = QAndroidJniObject::getStaticObjectField<jstring>("android/provider/AlarmClock", "EXTRA_MINUTES"); intent.callObjectMethod("putExtra", "(Ljava/lang/String;I)Landroid/content/Intent;", EXTRA_MINUTES.object<jstring>(), jint(minute)); QAndroidJniObject EXTRA_SKIP_UI = QAndroidJniObject::getStaticObjectField<jstring>("android/provider/AlarmClock", "EXTRA_SKIP_UI"); intent.callObjectMethod("putExtra", "(Ljava/lang/String;Z)Landroid/content/Intent;", EXTRA_SKIP_UI.object<jstring>(), jboolean(true));
Вопрос в том, с какой переменой нужно вызывать следущий код для установки дня недели:
QAndroidJniObject EXTRA_DAYS = QAndroidJniObject::getStaticObjectField<jstring>("android/provider/AlarmClock", "EXTRA_DAYS"); intent.callObjectMethod("putExtra", "(Ljava/lang/String;и здесь?)Landroid/content/Intent;", EXTRA_DAYS.object<jstring>(), что здесь должно быть?);
В документации сказано, что:
EXTRA_DAYS
public static final String EXTRA_DAYS
Bundle extra: Weekdays for repeating alarm.
Used by ACTION_SET_ALARM.
The value is an ArrayList < Integer > . Each item can be:
Calendar.SUNDAY,
Calendar.MONDAY,
Calendar.TUESDAY,
Calendar.WEDNESDAY,
Calendar.THURSDAY,
Calendar.FRIDAY,
Calendar.SATURDAY
Constant Value: "android.intent.extra.alarm.DAYS"
Чем тогда в Qt заменить Java тип ArrayList
Спасибо!
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Akiv Doros
- 11 ноября 2024 г. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
- molni99
- 26 октября 2024 г. 1:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
- molni99
- 26 октября 2024 г. 1:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Добрый день.
Пробовали jintArray ?
Да, пробовал, с преобразованием int array[]={1,2,3,4,5,6,7} в jintArray(array).
Если так, то программа компилируется без ошибок и предупреждений, но вываливается с ошибкой времени выполнения. Наверное, я что-то делаю не так.
А если так:
jintArray(5) //Четверг
то тоже крашется.
Не всё так просто.
Вот правильный рабочий код. Если надо, поясню.