Преобразование 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
Спасибо!
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Добрый день.
Пробовали jintArray ?
Да, пробовал, с преобразованием int array[]={1,2,3,4,5,6,7} в jintArray(array).
Если так, то программа компилируется без ошибок и предупреждений, но вываливается с ошибкой времени выполнения. Наверное, я что-то делаю не так.
А если так:
jintArray(5) //Четверг
то тоже крашется.
Не всё так просто.
Вот правильный рабочий код. Если надо, поясню.