public T GetField <T>(string className, string fieldName, bool isFieldStatic) { #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass clazz = new AndroidJavaClass(className); return(isFieldStatic ? clazz.GetStatic <T>(fieldName) : clazz.Get <T>(fieldName)); #else return(default(T)); #endif }
//Open SMS public static void SendSMS2(string sms, string content) { //Refernece of AndroidJavaClass class for intent AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); //Refernece of AndroidJavaObject class for intent AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); //call setAction method of the Intent object created intentObject.Call <AndroidJavaObject>("setAction", intentClass.GetStatic <string>("ACTION_VIEW")); //set the type of sharing that is happening intentObject.Call <AndroidJavaObject>("setType", "vnd.android-dir/mms-sms"); //add data to be passed to the other activity i.e., the data to be sent intentObject.Call <AndroidJavaObject>("putExtra", intentClass.Get <string>("address"), sms); intentObject.Call <AndroidJavaObject>("putExtra", intentClass.Get <string>("sms_body"), content); //get the current activity AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic <AndroidJavaObject>("currentActivity"); //start the activity by sending the intent data currentActivity.Call("startActivity", intentObject); }
public static string invokeMeta(int type, string msg = "") { #if UNITY_IPHONE return(_invokeMeta(type, msg)); #endif #if UNITY_ANDROID AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.Get <AndroidJavaObject>("currentActivity"); string ret = jo.Call <string>("_invokeMeta", new object[] { type, msg }); Debug.Log("invokeMeta done! ret : " + ret); return(ret); #endif return(""); }
// Start is called before the first frame update private void Awake() { AndroidJavaClass aclass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); aObj = aclass.Get <AndroidJavaObject>("currentActivity"); }
/// <summary> /// 打开相机 /// </summary> public void OpenCamera() { javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); javaObject = javaClass.Get <AndroidJavaObject>("currentActivity"); javaObject.Call("TakePhoto"); }
/// <summary> /// 打开相册 /// </summary> public void OpenGallery() { javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); javaObject = javaClass.Get <AndroidJavaObject>("currentActivity"); javaObject.Call("OpenGallery"); }
public T FindObject_CallMethod <T>(string className, string fieldName, bool isFieldStatic, string methodName, object[] methodParams) { #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass clazz = new AndroidJavaClass(className); AndroidJavaObject obj = isFieldStatic ? clazz.GetStatic <AndroidJavaObject>(fieldName) : clazz.Get <AndroidJavaObject>(fieldName); T result = IsAvailable(methodParams) ? obj.Call <T>(methodName, methodParams) : obj.Call <T>(methodName); obj.Dispose(); clazz.Dispose(); return(result); #else return(default(T)); #endif }
public void FindObject_CallStaticMethod(string className, string fieldName, bool isFieldStatic, string methodName, object[] methodParams) { #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass clazz = new AndroidJavaClass(className); AndroidJavaObject obj = isFieldStatic ? clazz.GetStatic <AndroidJavaObject>(fieldName) : clazz.Get <AndroidJavaObject>(fieldName); obj.CallStatic(methodName, methodParams); obj.Dispose(); clazz.Dispose(); #endif }
public static T[] GetAsArray <T>(this AndroidJavaClass javaClass, string fieldName) where T : JavaObjectWrapper => javaClass.Get <AndroidJavaObject>(fieldName).AsArray <T>();