diff -r 8ebee8e28593 android-project/src/org/libsdl/app/SDLActivity.java --- a/android-project/src/org/libsdl/app/SDLActivity.java Tue Oct 21 11:44:35 2014 -0300 +++ b/android-project/src/org/libsdl/app/SDLActivity.java Wed Oct 22 16:19:33 2014 +0200 @@ -149,6 +149,17 @@ mLayout.addView(mSurface); setContentView(mLayout); + + // Get filename from "Open with" of another application + Intent intent = getIntent(); + + if (intent != null && intent.getData() != null) + { + String filename = intent.getData().getPath(); + Log.v("SDL", "Get filename:" + filename); + + SDLActivity.onNativeDropFile(filename); + } } // Events @@ -373,6 +384,7 @@ public static native void nativeQuit(); public static native void nativePause(); public static native void nativeResume(); + public static native void onNativeDropFile(String filename); public static native void onNativeResize(int x, int y, int format); public static native int onNativePadDown(int device_id, int keycode); public static native int onNativePadUp(int device_id, int keycode); diff -r 8ebee8e28593 src/core/android/SDL_android.c --- a/src/core/android/SDL_android.c Tue Oct 21 11:44:35 2014 -0300 +++ b/src/core/android/SDL_android.c Wed Oct 22 16:19:33 2014 +0200 @@ -141,6 +141,18 @@ __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL_Android_Init() finished!"); } +/* Drop file */ +void Java_org_libsdl_app_SDLActivity_onNativeDropFile( + JNIEnv* env, jclass jcls, + jstring filename) +{ + const char *path = (*env)->GetStringUTFChars(env, filename, NULL); + + SDL_SendDropFile(path); + + (*env)->ReleaseStringUTFChars(env, filename, path); +} + /* Resize */ JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_onNativeResize( JNIEnv* env, jclass jcls,