I develop android app.
I want to open my text file in plugin, but it can not open file.
My code is following,
// plugin side void openTextTest(char* filename, jobject asset_manager){ AAssetManager* mgr = AAssetManager_fromJava(env, asset_manager); if(mgr!=NULL){ AAsset* asset = AAssetManager_open(mgr, filename, AASSET_MODE_UNKNOWN); if(asset!=NULL){ // AAssetManager_open() return NULL. Why? ... AAsset_close(asset); } } }
// cs script side void OnGUI(){ string setting_path = Application.persistentDataPath + "/assets/sample.txt"; IntPtr cls_Activity = (IntPtr)AndroidJNI.FindClass("com/unity3d/player/UnityPlayer"); IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;"); IntPtr obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity); IntPtr obj_cls = AndroidJNI.GetObjectClass(obj_Activity); IntPtr asset_func = AndroidJNI.GetMethodID(obj_cls, "getAssets", "()Landroid/content/res/AssetManager;"); jvalue[] asset_array = new jvalue[2]; // <- ? IntPtr assetManager = AndroidJNI.CallObjectMethod(obj_Activity, asset_func, asset_array); if(assetManager!=null){ openTextTest(setting_path, assetManager); } }
Where is wrong?