Time for action – reading assets with the Asset manager
Let's create a class to read the Android asset files:
Create
jni/Resource.hpp
to encapsulate the access to asset files. We are going to use theAAsset
API defined inandroid/asset_manager.hpp
(which is already included inandroid_native_app_glue.h
).Declare the three main operations:
open()
,close()
, andread()
. We also need to retrieve the resource's path ingetPath()
.The Android Asset management API entry point is an
AAsetManager
opaque structure. We can access asset files, represented by a second opaque structureAAsset
, from it:#ifndef _PACKT_RESOURCE_HPP_ #define _PACKT_RESOURCE_HPP_ #include "Types.hpp" #include <android_native_app_glue.h> class Resource { public: Resource(android_app* pApplication, const char* pPath); const char* getPath() { return mPath; }; status open(); void close(); status read(void* pBuffer, size_t pCount); bool operator==(const Resource& pOther); private: const...