- Home /
Accessing variables from android java objects
Hi, I am writing a C# script for a plugin I am writing in which needs to get a string from an android java object. I can call functions and stuff using what I have right now but anytime I go to get a variable stored in the object it comes back blank. I have been using the AndroidJavaObject.GetStatic to try to call variables. I am not sure if I am using this right or not but here is my code...
C# Unity Side
using UnityEngine; using System.Collections; public class FacebookInt : MonoBehaviour {
private AndroidJavaClass FBses; private AndroidJavaObject jo; public string FbEmail; public string FbName; public string FbID; bool alreadychecked=false; public bool logresp= false;
// Use this for initialization void Start () { // create our new actvity if (Application.platform==RuntimePlatform.Android) {FBses=new AndroidJavaClass("com.codestormstudios.seeitextensions.Extensions"); jo= FBses.GetStatic("currentActivity"); } }
void update () {
// use this only if were on login screen if (Application.loadedLevelName=="StartScreen") {FBLoginListener ();}
}
void OnGUI () {
GUI.Label(new Rect(0,0,300,100),FbEmail); }
public void FBLogin () {
if (Application.platform==RuntimePlatform.Android) { FBses.CallStatic ("facebooklaunch",0); }
}
// checks to see if we have completed sign in process. if so commence login sequence public void FBLoginListener () { if (!(alreadychecked)) { Debug.Log("Got here FBLoginListener: failed"); logresp=jo.GetStatic("FacbookLoginResult"); if (logresp) { Debug.Log("Got here FBLoginListener: sucess"); FbID=jo.GetStatic("useid"); FbEmail=jo.GetStatic("email"); FbName=jo.GetStatic("username");
alreadychecked=true; }
else { FbID=""; FbEmail=""; FbName=""; } } }
Here is my android side of things...
package com.BlockedName.BlockedName; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import com.unity3d.player.UnityPlayer; import com.unity3d.player.UnityPlayerActivity;
public class Extensions extends UnityPlayerActivity{
// class variables /////////////////////////////////// // Activity result function static int resultcheck; static int faceval; // Facebook vars public static String useid=""; public static String email="boo"; public static String username=""; public static Boolean FacbookLoginResult=false; // toast function public static String ToastVal ="test";
///////////////////////////////////////////////////// @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); unitytoast ();
}
public static void unitytoast () { Toast workingtoast=Toast.makeText(UnityPlayer.currentActivity.getApplicationContext(), ToastVal, Toast.LENGTH_LONG); workingtoast.show();
}
// Launcher functions
public static void facebooklaunch ( final int functionswitch) // send which Facebook function we want to use
{ resultcheck=1; faceval=functionswitch; Intent facebookint; facebookint = new Intent(UnityPlayer.currentActivity.getApplicationContext(),FacebookInt.class); // input the function value facebookint.putExtra( "functswitch" , functionswitch); final int result=1;
UnityPlayer.currentActivity.startActivityForResult(facebookint,result); }
@Override public void onActivityResult (int requestCode,int resultCode,Intent data) { super.onActivityResult(requestCode, resultCode, data);
switch (resultcheck) { case 1: // facebook function switch (faceval) { case 0:// login FacbookLoginResult=data.getBooleanExtra("FacbookResult", FacbookLoginResult); if (FacbookLoginResult==true) { useid=data.getStringExtra("useid"); email=data.getStringExtra("email"); username=data.getStringExtra("username"); Log.d("gotvals",useid); Log.d("gotvals",email); Log.d("gotvals",username); }
else { useid=""; email=""; username=""; }
break; }
break; }
} // class continues... }
sorry the code is co$$anonymous$$g out weird. Let me try to fix it.
Answer by FDNYRES1CUE · Jul 29, 2012 at 12:26 AM
I figured it out. It ended up that I just used unitysendmessage() from the native android side of things. I still world like to understand what the GetStatic functions do to vars.
Your answer
Follow this Question
Related Questions
Importing a Unity3D scene into Android Fragment 3 Answers
How put Android native code into c# unity 2 Answers
Integration of Java,C++,C# in Unity 0 Answers
Unable to Convert classes into dex Format 1 Answer
Calling static jar function from Unity3D 0 Answers