Преобразование 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 хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Unknown akadamn
- 24 января 2025 г. 17:14
Qt - Тест 001. Сигналы и слоты
- Результат:84баллов,
- Очки рейтинга4
- Unknown akadamn
- 24 января 2025 г. 16:22
Qt - Тест 001. Сигналы и слоты
- Результат:42баллов,
- Очки рейтинга-8


Добрый день.
Пробовали jintArray ?
Да, пробовал, с преобразованием int array[]={1,2,3,4,5,6,7} в jintArray(array).
Если так, то программа компилируется без ошибок и предупреждений, но вываливается с ошибкой времени выполнения. Наверное, я что-то делаю не так.
А если так:
jintArray(5) //Четверг
то тоже крашется.
Не всё так просто.
Вот правильный рабочий код. Если надо, поясню.