android/media/MediaScannerConnection JNI?

81 views
Skip to first unread message

Jason

unread,
Apr 9, 2015, 12:15:10 PM4/9/15
to andro...@googlegroups.com
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.

Reply all
Reply to author
Forward
0 new messages