GooglePAD accessing downloaded files

The title pretty much sums it up…

I’ve managed to setup GooglePAD on an Android project to the extent that I successfully download 3 different On-Demand packages, however once that part is completed and it’s time to Initiate the game I simply do not know how to do it.

In the docs:

" Calling GetAssetsPath and providing the location handle will output a string with the asset path for the desired asset pack. GetStorageMethod will output an EGooglePADStorageMethod stating the way the asset pack is stored on the user’s device. Once you know the asset path and storage method, you can then use appropriate calls to access the assets."

I have the asset path string, and I’ve got all the syntaxes setup nicely, once all downloads are completed the StorageMethod tells me the files are downloaded as “STORAGE FILES”, which are described like “The asset pack is unpacked into a folder containing individual asset files. These assets can be accessed via standard file APIs.”

But what is

standard file APIs. ???

I’ve checked pretty much all the logical things I could come up with, Asset Manager / Asset Data / Asset Registry / Mobile Patch Plugin (For relevant functions that could help) and Blueprint Paths Library… But nothing seems to be able to help me use/call/load or mount the recently downloaded chunks/assetPacks.

I also read

https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Runtime/GooglePAD/Source/ThirdParty/play-core-native-sdk/include/play/asset_pack.h#L269

I can rant on about different things I’ve explored, but as you guys can imagine I’m here because I haven’t found a solution to my problem.

Seriously hope someone can help me and future readers in regards to this issue!

Thanks for reading such a long post!

Edit: 9/28/2022
A full solution is made and available over at GooglePAD Marketplace Forum Thread, I hope It’ll help some of you all! There is also a 30page document attached that might give guidance to some of you that already got most of the implementation done!

2 Likes

Hey @ericho, i have the same problem for almost a year, could you share with us a project where you have successfully implemented and used these features, it will help a lot of people ,thank you.

Hey @Sofiane_MERRAD , unfortunately as you can probably guess it’s not really working yet…

Have no idea how to access or mount the downloaded files

I have problem to download on demand package so, if you can help that will be great , Until maybe one day the epic engineers will give more importance to mobile Development.

I have solved how to use GooglePAD with all the features it includes.
Took quite some time and unfortunately isn’t possible to do without some C++ functions which I’ve made a Blueprint library out off.

I suggest anyone reading this to wait until GooglePAD leaves experimental or the documentation gets an overhaul before they use it.

Hey @Ericho,
Have you by any chance encountered this issue, when after successfully calling RequestDownload every time you ask for the status update GetDownloadStatus, it returns AssetPack_DOWNLOAD_PENDING?

At the same time, seems like download is actually running behind the scene. If I just wait for some time while it’s “pending”, and then relaunch my app, I can see that packages are actually downloaded and can be mounted as expected.

As for your initial question, if you still didn’t figure it out, you can use this code to mount pak files:

FPakPlatformFile* PakPlatformFile = (FPakPlatformFile*)(FPlatformFileManager::Get().FindPlatformFile(FPakPlatformFile::GetTypeName()));
if (PakPlatformFile && PakPlatformFile->Mount(*ChunkPath, 0))
{
	// it's mounted
}