I am afraid that you did not study the demo program Mahares sent you.
He uses the SafeFolder, which is defined in this line:
SafeFolder = rp.GetSafeDirDefaultExternal("ATLAS10")
And just copied some files from
Files.DirAssets to have them in that folder.
This is a special folder accessible from outsides without any permission.
On my device, the folder is:
S10 de Klaus\Stockage interne\Android\data\b4a.TestSafeFolder\files\ATLAS10
S10 de Klaus : the name of my Samsung Galaxy S10
Stockage interne : is the name of the internal memory, in french, yours will be in your language.
Android\data : same for all devices.
b4a.TestSafeFolder : the Package name set in Build Configurations.
ATLAS10 : the subfolder defined in the code above.
I tested this project, I just changed its name from B4A Example to TestSafeFolder and b4x.TestSafeFolder in the Build Configurations.
I can access this folder on the PC with the Widows files explorer connect to the device via a USB cable!
I added, on the PC, a new image rose2.jpg and changed this line in the code:
If (File.Exists(SafeFolder,"rose2.jpg")) Then Button1.SetBackgroundImage(LoadBitmap(SafeFolder,"rose2.jpg"))
with the new image file name. And it works !
The only drawback is that the folder is on a specific place on the device and it will be removed when you uninstall the program.
The advantage no permission nor user intervention needed.
The only other solution has been explained in previous posts.