I need to call a Java method from a Unity C# script and pass to it a android.support.v4.app.FragmentManager object. I tried to get a FragmentManager object
AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject unityActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
unityActivity.Call<AndroidJavaObject>("getSupportFragmentManager"); // this fails
and got the error
05-15 16:10:21.045: E/Unity(30419): getMethodID("getSupportFragmentManager", "()Ljava/lang/Object;") FAILED!
05-15 16:10:21.055: I/Unity(30419): JNI: Unable to find method id for 'getSupportFragmentManager'
05-15 16:10:21.055: I/Unity(30419):
05-15 16:10:21.055: I/Unity(30419): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 43)
05-15 16:10:21.055: I/Unity(30419): JNI: Init'd AndroidJavaObject with null ptr!
05-15 16:10:21.055: I/Unity(30419):
05-15 16:10:21.055: I/Unity(30419): (Filename: ./Runtime/ExportGenerated/AndroidManaged/UnityEngineDebug.cpp Line: 43)
Since the app needs to be compatible with Android 2.2 devices, I specifically need to get a FragmentManager object by calling getSupportFragmentManager() instead of getFragmentManager(). This is typically done by extending FragmentActivity instead of Activity, but I don’t know if it is even possible to do that in Unity’s currentActivity.
How can I get a android.support.v4.app.FragmentManager object from the Unity activity?