Page 3 of 3

Re: Makedir on SD card failed

Posted: Mon May 13, 2024 7:50 pm
by xabierpayet
i cannot query the units, i can write directly to the SDCard but i need to know the correct label of the card used ever, for my tests is enough, but a better solution ever will be nice

Re: Makedir on SD card failed

Posted: Thu Dec 05, 2024 6:13 pm
by amyren
I think I might have found a solution/workaround
According to this page https://developer.android.com/training/ ... oogle-play the folder /Android/media/ is a part of the shared storage.
I found I could successfully create a folder with any chosen name in the /Android/media/ folder, and this works if using the path /storage/emulated/0/Android/media/ or simply /sdcard/Android/media/
The folder gets created, but I could not manage to create a file inside it, so that seemed quite pointless so far.

But if the directory name is set to the exact same as the name of the compiled Package, then it works and you can create files or copy files into the directory. And the good thing is that the files will be accessable (opposed to the files in the /Android/data/ folders which can not be accessed)

Here is a working example:

Code: Select all

@DISPLAY {Title = "Dir test", ScaleMode = #SCALEMODE_AUTO, FitScale = True}
ExitOnError(False)
	filedir$ = "/sdcard/Android/media/com.amy66dev.dir1"
	TextOut(100, 75, filedir$)
	If Exists(filedir$)
		TextOut(100, 100, filedir$.." exsists")
	Else
		TextOut(100, 100, "MAKING DIR 1")
		MakeDirectory(filedir$)
	EndIf	
	If Exists(filedir$.."/testfile.dat")
		TextOut(100, 125, "File in dir1 exists")
	Else
		StringToFile("test", filedir$.."/testfile.dat")
		TextOut(100, 125, "Creating file in owndir")
	EndIf
	If Exists("testfile2.dat")
		TextOut(100, 150, "File in own dir exists")
	Else
		StringToFile("test", "testfile2.dat")
		TextOut(100, 150, "Creating file in owndir")
		CopyFile("testfile2.dat", filedir$)
		TextOut(100, 175, "Copying file from owndir")
	EndIf
WaitLeftMouse

Re: Makedir on SD card failed

Posted: Tue Sep 23, 2025 12:22 pm
by amyren
After my last post on this matter I found a slightly different method to determinate the shared storage folder.

One could set the filedir$ variable to the shared storage folder location area like this

Code: Select all

ta = GetSystemInfo()
filedir$ = ta.InternalStorage.."/testdir"
MakeDirectory(filedir$)
But I realize I've been overcomplicating things here, since a simple

Code: Select all

filedir$ = "testdir"
MakeDirectory(filedir$)
would do the same thing, since android apear to operate in this area by default anyway.

The actual issue of accessing the external SDCARD remains unresolved

Re: Makedir on SD card failed

Posted: Tue Sep 30, 2025 10:09 am
by amyren
I think I have found a better solution now that enables handling files on internal and external storage.
However, I feel that it is more related to APK Compiler than general programming, so I will create a new thread on the matter in the APK Compiler section.