I am trying to take a picture, save it, and have it appear int he gallery. The saving works ok, and photos appear after a reboot. But I want this to work instantly. To that end, I am trying the JNI below:
void MediaRegister::registerFile(const QString& file)
{
#ifdef ANDROID
QString real = file;
real.replace("/0/", "/legacy/");
QAndroidJniEnvironment env;
QAndroidJniObject string = QAndroidJniObject::fromString(real);
QAndroidJniObject stringArray = env->NewObjectArray(1, env->FindClass("java/lang/String"), NULL);
env->SetObjectArrayElement(stringArray.object<jobjectArray>(), 0, string.object<jstring>());
QAndroidJniObject::callStaticMethod<void>("android/media/MediaScannerConnection",
"scanFile",
"(Landroid/content/Context;[Ljava/lang/String;[Ljava/lang/String;Landroid/media/MediaScannerConnection/OnScanCompletedListener)V",
QtAndroid::androidActivity().object<jobject>(), stringArray.object<jobjectArray>(), 0, 0);
//env->DeleteLocalRef(string.object<jobject>());
//env->DeleteLocalRef(stringArray);
qDebug() << Q_FUNC_INFO << real;
#endif
}
But nothing ever prints on the `adb logcat` other than the qDebug() line. I can't diagnose what I am doing wrong? Pointers?
Thanks.