- Home /
Opening Unity in Android View [Picture and Code]
Hi all!
Were trying to get Unity to open on top of our pre-existing Android app. We want this to act as an Android View, so we can pause, resume, and possibly resume it as we please. We have already taken most of the steps the steps to get it there but it we are having this issue:
This is a sample app we set up to test this functionality. Back in the pre-existing Android app, when the user starts it, it creates the view…..We get this, the blue you see in the background is an android view that is colored this eventually will be transparent. The black, is the problem. This is where Unity should be displaying.
Here is a snippet of the Java code we are using to create and start the view:
public void resumeIQ360(final JSONObject jsonData){
final CordovaWebView localAppView = appMobile.appView;
final Display display = appMobile.getWindowManager().getDefaultDisplay();
final DisplayMetrics metrics = new DisplayMetrics();
display.getRealMetrics(metrics);
/*
super.setBooleanProperty("setFullscreen", true);
super.setIntegerProperty("loadUrlTimeoutValue", 600000000);
requestWindowFeature(Window.FEATURE_NO_TITLE);
*/
iq360WasStartedByUser = true;
FrameLayout.LayoutParams smartappLayoutParams = new FrameLayout.LayoutParams(0, 0);
localAppView.setLayoutParams(smartappLayoutParams);
if(mUnityPlayer == null){
load360View(metrics);
}
// mUnityPlayer.resume();
FrameLayout.LayoutParams apLayoutParams = new FrameLayout.LayoutParams(200, 200);
View playerView = mUnityPlayer.getView();
playerView.setLayoutParams(apLayoutParams);
playerView.setBackgroundColor(Color.RED);
playerView.requestFocus();
mUnityPlayer.setBackgroundColor(Color.GREEN);
mUnityPlayer.setVisibility(View.VISIBLE);
mUnityPlayer.forceLayout();
mUnityPlayer.recomputeViewAttributes(playerView);
mUnityPlayer.resume();
String finalizedData = "[" + jsonData.toString() + "]";
mUnityPlayer.UnitySendMessage("Game Manager", "SetInitData", finalizedData);
}
public void load360View(DisplayMetrics metrics){
getWindow().takeSurface(null);
setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
getWindow().setFormat(PixelFormat.RGB_565);
mUnityPlayer = new UnityPlayer(appMobile);
if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))
getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
int glesMode = mUnityPlayer.getSettings().getInt("gles_mode", 1);
boolean trueColor8888 = false;
mUnityPlayer.init(glesMode, trueColor8888);
setContentView(R.layout.main);
FrameLayout layout = (FrameLayout) findViewById(R.id.unityFrame);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(200 , 200);
View playerView = mUnityPlayer.getView();
layout.addView(playerView, 0, lp);
mUnityPlayer.recomputeViewAttributes(playerView);
mUnityPlayer.forceLayout();
}
Any reason why its doing this? We’ve tried multiple phones, tablets, and manufacturers. Any help would be appreciated.
Your answer
Follow this Question
Related Questions
Google Play APK Signing error. 1 Answer
Android Studio .JAR Export instructions sought 0 Answers
Rendering Android native view with OpenGL 0 Answers
Unity as a Plugin JNI error 0 Answers
Play Audio in Android background? 0 Answers