DEF FN_AndroidPublicDirectory(dir$) LOCAL path$, path%, clazz%, env%, fid%, mid%, field%, objcls%, object%, string% SYS "SDL_AndroidGetJNIEnv" TO env% SYS !(!env%+24), env%, "android/os/Environment" TO clazz% : REM FindClass SYS !(!env%+576), env%, clazz%, dir$, "Ljava/lang/String;" TO fid% : REM GetStaticFieldID IF fid% = 0 SYS !(!env%+92), env%, clazz% : = "" SYS !(!env%+580), env%, clazz%, fid% TO field% : REM GetStaticObjectField SYS !(!env%+452), env%, clazz%, "getExternalStoragePublicDirectory", \ \ "(Ljava/lang/String;)Ljava/io/File;" TO mid% : REM GetStaticMethodID SYS !(!env%+456), env%, clazz%, mid%, field% TO object% : REM CallStaticObjectMethod SYS !(!env%+124), env%, object% TO objcls% : REM GetObjectClass SYS !(!env%+132), env%, objcls%, "getAbsolutePath", \ \ "()Ljava/lang/String;" TO mid% : REM GetMethodID SYS !(!env%+136), env%, object%, mid% TO string% : REM CallObjectMethod SYS !(!env%+676), env%, string%, 0 TO path% : REM GetStringUTFChars path$ = $$path% SYS !(!env%+680), env%, string%, path% : REM ReleaseStringUTFChars SYS !(!env%+92), env%, objcls% : REM DeleteLocalRef SYS !(!env%+92), env%, object% : REM DeleteLocalRef SYS !(!env%+92), env%, field% : REM DeleteLocalRef SYS !(!env%+92), env%, clazz% : REM DeleteLocalRef = path$