The documentation : Launching an Android application from within unity describes how to extend the UnityPlayerActivity to call the Intent method, but I want to do it without extending UnityPlayerActivity, by simply calling a Java class. but I can’t succeed doing that.
C# code :
private static AndroidJavaClass ajc =new AndroidJavaClass ("com.MyCompany.AmazingApp.niceBuilder") ;
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass intent = ajc.CallStatic<AndroidJavaObject>("createIntent");
jo.Call(startActivity,intent);
Java Code :
public static Intent createIntent(){
Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_VIEW);
myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
return myIntent;
}
I also tried to start the activity completely from inside createIntent().
java code :
public static void createIntent(Activity currentActivity){
Intent myIntent.setAction(Intent.ACTION_VIEW);
myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
currentActivity.startActivity(enableBtIntent);
}
and then call the function from unity
ajc.CallStatic<void>("createIntent",jo);
but nothing works.
I quote from the documentation :
“This intent then needs to be setup in
the onCreate function”
could that be the reason, if so why, why do I need to setup my Intent in onCreate()?, and is there any solution to this problem?