IEnumerator ShareScreenshotInterface.ShareScreenshot(byte[] screenshot, bool isProcessing, string shareText, string gameLink, string subject) { isProcessing = true; string destination = Path.Combine(Application.persistentDataPath, "Screenshot.png"); FileStream fs = new FileStream(destination, FileMode.OpenOrCreate); BinaryWriter ww = new BinaryWriter(fs); ww.Write(screenshot); ww.Close(); fs.Close(); AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + destination); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText + gameLink); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject); intentObject.Call<AndroidJavaObject>("setType", "image/png"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); currentActivity.Call("startActivity", intentObject); isProcessing = false; yield return new WaitForSeconds(1); }
public static bool Connect(string address) { try { var adapter = new AJObject("android.bluetooth.BluetoothAdapter") .CallStatic <AJObject>("getDefaultAdapter"); // force enable bluetooth adapter.Call <bool>("enable"); var device = adapter.Call <AJObject>("getRemoteDevice", address); var uuid = new AJObject("java.util.UUID") .CallStatic <AJObject>("fromString", SPP_UUID); var socket = device.Call <AJObject>( "createInsecureRfcommSocketToServiceRecord", uuid); socket.Call("connect"); // at this point, connection is made, no further action necessary socket.Call("close"); return(true); } catch { return(false); } }
public static int IsLocked() { try { using (AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity"); } using ( AndroidJavaClass pluginClass = new AndroidJavaClass("com.dualcorstudios.unityscreenpin.DCSAndroidToolkit")) { if (pluginClass != null) { DCSToolkit = pluginClass.CallStatic<AndroidJavaObject>("instance"); DCSToolkit.Call("setContext", activityContext); return activityContext.Call<int>("runOnUiThread", new AndroidJavaRunnable(() => { DCSToolkit.Call("isLocked"); })); } } } catch (AndroidJavaException e) { Debug.Log(e.Message); Debug.Log(e.StackTrace); } return 1; }
public void shareText() { //execute the below lines if being run on a Android device #if UNITY_ANDROID body = "Faltan " + RolCountdownController.daysRemaining + " días, " + RolCountdownController.hoursRemaining + " horas y " + RolCountdownController.minutesRemaining + " minutos para las próxima roleada!"; //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_SEND")); //set the type of sharing that is happening intentObject.Call<AndroidJavaObject>("setType", "text/plain"); //add data to be passed to the other activity i.e., the data to be sent intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), body); //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); #endif }
/// <summary>Gets the Google API client Java object.</summary> /// <returns>The API client associated with the current Unity app.</returns> /// <param name="serverClientID">The OAuth 2.0 client ID for a backend server.</param> public AndroidJavaObject GetApiClient(bool getServerAuthCode = false, string serverClientID = null) { Debug.Log("Calling GetApiClient...."); using (var currentActivity = GetActivity()) { using (AndroidJavaClass jc_plus = new AndroidJavaClass("com.google.android.gms.plus.Plus")) { using (AndroidJavaObject jc_builder = new AndroidJavaObject("com.google.android.gms.common.api.GoogleApiClient$Builder", currentActivity)) { jc_builder.Call<AndroidJavaObject>("addApi", jc_plus.GetStatic<AndroidJavaObject>("API")); jc_builder.Call<AndroidJavaObject>("addScope", jc_plus.GetStatic<AndroidJavaObject>("SCOPE_PLUS_LOGIN")); if (getServerAuthCode) { jc_builder.Call<AndroidJavaObject>("requestServerAuthCode", serverClientID, jc_builder); } AndroidJavaObject client = jc_builder.Call<AndroidJavaObject>("build"); client.Call("connect"); // limit spinning to 100, to minimize blocking when not // working as expected. // TODO: Make this a callback. int ct = 100; while ((!client.Call<bool>("isConnected")) && (ct-- != 0)) { System.Threading.Thread.Sleep(100); } Debug.Log("Done GetApiClient is " + client); return client; } } } }
public static void FetchOBB() { #if UNITY_ANDROID using (AndroidJavaClass unity_player = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { AndroidJavaObject current_activity = unity_player.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", current_activity, new AndroidJavaClass("com.unity3d.plugin.downloader.UnityDownloaderActivity")); int Intent_FLAG_ACTIVITY_NO_ANIMATION = 0x10000; intent.Call<AndroidJavaObject>("addFlags", Intent_FLAG_ACTIVITY_NO_ANIMATION); intent.Call<AndroidJavaObject>("putExtra", "unityplayer.Activity", current_activity.Call<AndroidJavaObject>("getClass").Call<string>("getName")); current_activity.Call("startActivity", intent); if (AndroidJNI.ExceptionOccurred() != System.IntPtr.Zero) { Debug.LogError("Exception occurred while attempting to start DownloaderActivity - is the AndroidManifest.xml incorrect?"); AndroidJNI.ExceptionDescribe(); AndroidJNI.ExceptionClear(); } } #endif }
private void showDialog(string msg) { #if UNITY_ANDROID // Obtain activity AndroidJavaClass unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityPlayer.GetStatic< AndroidJavaObject> ("currentActivity"); // Lets execute the code in the UI thread activity.Call("runOnUiThread", new AndroidJavaRunnable(() => { //clear flag clearflag (); // Create an AlertDialog.Builder object AndroidJavaObject alertDialogBuilder = new AndroidJavaObject("android/app/AlertDialog$Builder", activity); // Call setMessage on the builder alertDialogBuilder.Call< AndroidJavaObject> ("setMessage", msg); // Call setCancelable on the builder alertDialogBuilder.Call< AndroidJavaObject> ("setCancelable", true); // Call setPositiveButton and set the message along with the listner // Listner is a proxy class alertDialogBuilder.Call< AndroidJavaObject> ("setPositiveButton", "Yes", new PositiveButtonListner(this)); // Call setPositiveButton and set the message along with the listner // Listner is a proxy class alertDialogBuilder.Call< AndroidJavaObject> ("setNegativeButton", "No", new NegativeButtonListner(this)); // Finally get the dialog instance and show it AndroidJavaObject dialog = alertDialogBuilder.Call< AndroidJavaObject> ("create"); dialog.Call("show"); })); #endif }
public void start(AdjustConfig adjustConfig) { AndroidJavaObject ajoEnvironment = adjustConfig.environment == AdjustEnvironment.Sandbox ? new AndroidJavaClass ("com.adjust.sdk.AdjustConfig").GetStatic<AndroidJavaObject> ("ENVIRONMENT_SANDBOX") : new AndroidJavaClass ("com.adjust.sdk.AdjustConfig").GetStatic<AndroidJavaObject> ("ENVIRONMENT_PRODUCTION"); AndroidJavaObject ajoAdjustConfig = new AndroidJavaObject ("com.adjust.sdk.AdjustConfig", ajoCurrentActivity, adjustConfig.appToken, ajoEnvironment); if (adjustConfig.logLevel != null) { AndroidJavaObject ajoLogLevel = new AndroidJavaClass ("com.adjust.sdk.LogLevel").GetStatic<AndroidJavaObject> (adjustConfig.logLevel.ToString().ToUpper()); if (ajoLogLevel != null) { ajoAdjustConfig.Call ("setLogLevel", ajoLogLevel); } } if (adjustConfig.attributionChangedDelegate != null) { onAttributionChangedListener = new AttributionChangeListener (adjustConfig.attributionChangedDelegate); ajoAdjustConfig.Call ("setOnAttributionChangedListener", onAttributionChangedListener); } ajoAdjustConfig.Call ("setSdkPrefix", adjustConfig.sdkPrefix); ajcAdjust.CallStatic ("onCreate", ajoAdjustConfig); }
protected PurchasableVirtualItem(AndroidJavaObject jniVirtualItem) : base(jniVirtualItem) { SoomlaUtils.LogDebug(TAG, "Trying to create PurchasableVirtualItem with itemId: " + jniVirtualItem.Call<string>("getItemId")); using(AndroidJavaObject jniPurchaseType = jniVirtualItem.Call<AndroidJavaObject>("getPurchaseType")) { System.IntPtr cls = AndroidJNI.FindClass("com/soomla/store/purchaseTypes/PurchaseWithMarket"); if (AndroidJNI.IsInstanceOf(jniPurchaseType.GetRawObject(), cls)) { using(AndroidJavaObject jniMarketItem = jniPurchaseType.Call<AndroidJavaObject>("getMarketItem")) { MarketItem mi = new MarketItem(jniMarketItem); PurchaseType = new PurchaseWithMarket(mi); } } else { cls = AndroidJNI.FindClass("com/soomla/store/purchaseTypes/PurchaseWithVirtualItem"); if (AndroidJNI.IsInstanceOf(jniPurchaseType.GetRawObject(), cls)) { string itemId = jniPurchaseType.Call<string>("getTargetItemId"); int amount = jniPurchaseType.Call<int>("getAmount"); PurchaseType = new PurchaseWithVirtualItem(itemId, amount); } else { SoomlaUtils.LogError(TAG, "Couldn't determine what type of class is the given purchaseType."); } } } }
/// <summary> /// 取得磁盘空间 /// </summary> /// <param name="path"></param> /// <returns>-1表示未知。失败时返回0</returns> public static Int64 getDiskFreeSpace(String path) { #if UNITY_STANDALONE_WIN ulong FreeBytesAvailable; ulong TotalNumberOfBytes; ulong TotalNumberOfFreeBytes; bool success = GetDiskFreeSpaceEx(path, out FreeBytesAvailable, out TotalNumberOfBytes, out TotalNumberOfFreeBytes); if (!success) return 0; return (Int64)TotalNumberOfFreeBytes; #elif UNITY_ANDROID AndroidJavaObject statFs = new AndroidJavaObject("android.os.StatFs", path); return (Int64)statFs.Call<Int32>("getBlockSize") * (Int64)statFs.Call<Int32>("getAvailableBlocks"); #elif UNITY_IOS ulong TotalNumberOfFreeBytes; bool success = exp_freeDiskSize(out TotalNumberOfFreeBytes); if(!success) return 0; return (Int64)TotalNumberOfFreeBytes; #else return -1; #endif }
IEnumerator ShareAndroidText () { yield return new WaitForEndOfFrame (); #if UNITY_ANDROID byte[] bytes = MyImage.EncodeToPNG(); string path = Application.persistentDataPath + "/MyImage.png"; File.WriteAllBytes(path, bytes); AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); intentObject.Call<AndroidJavaObject>("setType", "image/*"); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), "Text Sharing "); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TITLE"), "Text Sharing "); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "Text Sharing Android Demo"); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject fileObject = new AndroidJavaObject("java.io.File", path);// Set Image Path Here AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("fromFile", fileObject); // string uriPath = uriObject.Call<string>("getPath"); bool fileExist = fileObject.Call<bool>("exists"); Debug.Log("File exist : " + fileExist); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); currentActivity.Call("startActivity", intentObject); #endif }
public void OpenGallery() { #if UNITY_ANDROID //instantiate the class Intent AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); //instantiate the object Intent AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); //call setAction setting ACTION_SEND as parameter intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_PICK")); //instantiate the class Uri //AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); //instantiate the object Uri with the parse of the url's file //AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "content://media/internal/images/media"); //call putExtra with the uri object of the file //intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); //set the type of file intentObject.Call<AndroidJavaObject>("setType", "image/jpeg"); #region [ startActivity(intent); ] //instantiate the class UnityPlayer AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //instantiate the object currentActivity AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); //call the activity with our Intent currentActivity.Call("startActivity", intentObject); #endregion [ startActivity(intent); ] #endif }
public void Share(string shareText, string imagePath, string url, string subject = "") { #if UNITY_ANDROID AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + imagePath); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); intentObject.Call<AndroidJavaObject>("setType", "image/png"); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, subject); currentActivity.Call("startActivity", jChooser); #elif UNITY_IOS CallSocialShareAdvanced(shareText, subject, url, imagePath); #else Debug.Log("No sharing set up for this platform."); #endif }
public UpgradeVG(AndroidJavaObject jniUpgradeVG) : base(jniUpgradeVG) { GoodItemId = jniUpgradeVG.Call<string>("getGoodItemId"); NextItemId = jniUpgradeVG.Call<string>("getNextItemId"); PrevItemId = jniUpgradeVG.Call<string>("getPrevItemId"); }
void OnGUI() { if (GUI.Button(new Rect(10, 200, 100, 30), "Start")){ loadBytes(); Application.LoadLevel("GameMenu"); } if(GUI.Button(new Rect(10, 300, 100, 30), "Update")){ using (AndroidJavaClass unity_player = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { AndroidJavaObject current_activity = unity_player.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", current_activity, new AndroidJavaClass("com.unity3d.plugin.downloader.UnityDownloaderActivity")); int Intent_FLAG_ACTIVITY_NO_ANIMATION = 0x10000; intent.Call<AndroidJavaObject>("addFlags", Intent_FLAG_ACTIVITY_NO_ANIMATION); intent.Call<AndroidJavaObject>("putExtra", "name", "Downloading..."); // intent.Call<AndroidJavaObject>("putExtra", "unityplayer.Activity", // current_activity.Call<AndroidJavaObject>("getClass").Call<string>("getName")); current_activity.Call("startActivity", intent); if (AndroidJNI.ExceptionOccurred() != System.IntPtr.Zero) { Debug.LogError("Exception occurred while attempting to start DownloaderActivity - is the AndroidManifest.xml incorrect?"); AndroidJNI.ExceptionDescribe(); AndroidJNI.ExceptionClear(); } } } }
// Use this for initialization public void ShareImage() { #if UNITY_ANDROID Application.CaptureScreenshot("/Screenshot.png"); string destination = Application.persistentDataPath + "/Screenshot.png"; Debug.Log (destination); // block to open the file and share it ------------START AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse","file://" + destination); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); //intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "testo"); //intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), "SUBJECT"); intentObject.Call<AndroidJavaObject>("setType", "image/jpeg"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); // option one: currentActivity.Call("startActivity", intentObject); #endif }
private IEnumerator ShareCoroutineAndroid(string destination, string fullDestination) { #if UNITY_ANDROID AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaClass fileClass = new AndroidJavaClass("java.io.File"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + fullDestination); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); intentObject.Call<AndroidJavaObject>("setType", "image/jpeg"); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "Check out my streak in " + MessageBook.AppName); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); // display the chooser AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "Choose sharing method"); currentActivity.Call("startActivity", jChooser); #endif yield return null; }
private IEnumerator ShareScreenshot() { isProcessing = true; yield return new WaitForEndOfFrame(); Texture2D screenTexture = new Texture2D(1080, 1080, TextureFormat.RGB24, true); screenTexture.Apply(); if (!Application.isEditor) { AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string> ("ACTION_SEND")); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText + gameLink); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject); intentObject.Call<AndroidJavaObject>("setType", "text/plain"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); currentActivity.Call("startActivity", intentObject); } isProcessing = false; }
void Start() { #if UNITY_ANDROID plugin = new AndroidJavaClass("jp.kshoji.unity.sensor.UnitySensorPlugin").CallStatic<AndroidJavaObject>("getInstance"); plugin.Call("setSamplingPeriod", 100 * 1000); // refresh sensor 100 mSec each plugin.Call("startSensorListening", "accelerometer"); #endif }
public VirtualCurrencyPack(AndroidJavaObject jniVirtualCurrencyPack) : base(jniVirtualCurrencyPack) { this.CurrencyAmount = jniVirtualCurrencyPack.Call<int>("getCurrencyAmount"); // Virtual Currency CurrencyItemId = jniVirtualCurrencyPack.Call<string>("getCurrencyItemId"); }
public WrapperNetStream() { if (Application.platform == RuntimePlatform.Android) { Debug.Log("Trying to Call finish"); _socket = new AndroidJavaObject("java.net.Socket", new object[] { "192.168.1.3", 2594 }); _inStream = _socket.Call<AndroidJavaObject>("getInputStream"); _outStream = _socket.Call<AndroidJavaObject>("getOutputStream"); } }
public static string SaveInBackground(string parseObject, string key, string value) { Debug.Log("Initialize " + parseObject + " " + key + " " + value); var po = new AndroidJavaObject("com.parse.ParseObject", parseObject); po.Call("put", key, value); po.Call("saveInBackground"); return po.Call<String>("getObjectId"); }
public CBInPlay(AndroidJavaObject inPlayAd, AndroidJavaObject plugin) { androidInPlayAd = inPlayAd; // Set the app name and create appIcon texture appName = androidInPlayAd.Call<String>("getAppName"); string appIconString = plugin.Call<String> ("getBitmapAsString", androidInPlayAd.Call<AndroidJavaObject> ("getAppIcon")); appIcon = new Texture2D (4, 4); appIcon.LoadImage(Convert.FromBase64String(appIconString)); }
void Start() { jo = new AndroidJavaObject("com.example.alan.bluetoothreceive"); jo.Call("findBT"); jo.Call("openBT"); rb = GetComponent<Rigidbody>(); Vector3 movement = new Vector3(moveSpeed, 0.0f, moveSpeed); rb.AddForce(movement); }
public VirtualCategory(AndroidJavaObject jniVirtualCategory) { this.Name = jniVirtualCategory.Call<string>("getName"); using(AndroidJavaObject jniItemIds = jniVirtualCategory.Call<AndroidJavaObject>("getGoodsItemIds")) { for(int i=0; i<jniItemIds.Call<int>("size"); i++) { using(AndroidJavaObject jniItemId = jniItemIds.Call<AndroidJavaObject>("get", i)) { GoodItemIds.Add(jniItemId.Call<string>("toString")); } } } }
public RECBar(AndroidJavaObject recorder, string gameObject, string callback) { try { recBar = new AndroidJavaObject("cn.sharerec.gui.Unity3DRecBar"); recBar.Call("setRecorder", recorder); recBar.Call("setRecBarCallback", gameObject, callback); recBar.Call("setRecBarAnchor", 1); } catch(Exception e) { throw e; } }
public VirtualCurrencyPack(AndroidJavaObject jniVirtualCurrencyPack) : base(jniVirtualCurrencyPack) { this.CurrencyAmount = jniVirtualCurrencyPack.Call<int>("getCurrencyAmount"); // Google Market Item AndroidJavaObject jniGoogleMarketItem = jniVirtualCurrencyPack.Call<AndroidJavaObject>("getGoogleItem"); this.MarketItem = new MarketItem(jniGoogleMarketItem); // Virtual Currency AndroidJavaObject jniVirtualCurrency = jniVirtualCurrencyPack.Call<AndroidJavaObject>("getVirtualCurrency"); this.Currency = new VirtualCurrency(jniVirtualCurrency); }
private static AndroidJavaObject GetParams() { AndroidJavaObject obj = new AndroidJavaObject("com.inappertising.ads.core.model.AdParametersBuilder"); obj.Call<AndroidJavaObject>("setPublisherId", publisherId); obj.Call<AndroidJavaObject>("setAppKey", appKey); obj.Call<AndroidJavaObject>("setMarket", market); obj.Call<AndroidJavaObject>("setAffId", affId); return obj; }
// Use this for initialization void Start () { Debug.Log ("camera start"); AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); currentActivity = jc.GetStatic<AndroidJavaObject> ("currentActivity"); currentActivity.Call ("onUnityLoaded"); float[] cameraParam = currentActivity.Call<float[]> ("getCameraParameters"); Matrix4x4 proj = buildProjectionMatrix (cameraParam, w, h); camera.projectionMatrix = proj; }
//Threads (Clients) Interface public static void startThread(int threadID) { #if UNITY_ANDROID && !UNITY_EDITOR Debug.Log("getting the info to make the start activity "); AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject mainActivity = activityClass.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent","nl.dcc.buffer_bci.bufferclientsservice.clientsfilter"); intent = intent.Call<AndroidJavaObject>("putExtra","a",Config.bufferThreadStartActionID); intent = intent.Call<AndroidJavaObject>("putExtra","t_id",threadID); Debug.Log("service intent = " + intent); mainActivity.Call("sendBroadcast",intent); #endif }
public VirtualGood(AndroidJavaObject jniVirtualGood) : base(jniVirtualGood) { // Virtual Category using(AndroidJavaObject jniVirtualCategory = jniVirtualGood.Call<AndroidJavaObject>("getCategory")) { this.Category = new VirtualCategory(jniVirtualCategory); } // Price Model using(AndroidJavaObject jniPriceModel = jniVirtualGood.Call<AndroidJavaObject>("getPriceModel")) { this.PriceModel = AbstractPriceModel.CreatePriceModel(jniPriceModel); } }
public static string GetAndroidAdMobID() { UnityEngine.AndroidJavaClass up = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer"); UnityEngine.AndroidJavaObject currentActivity = up.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); UnityEngine.AndroidJavaObject contentResolver = currentActivity.Call <UnityEngine.AndroidJavaObject>("getContentResolver"); UnityEngine.AndroidJavaObject secure = new UnityEngine.AndroidJavaObject("android.provider.Settings$Secure"); string deviceID = secure.CallStatic <string>("getString", contentResolver, "android_id"); return(Md5Sum(deviceID).ToUpper()); }
/// <summary> /// 调用方法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="result"></param> /// <param name="jobj"></param> /// <param name="name"></param> /// <param name="args"></param> /// <returns></returns> public bool CallMethod <T>(ref T result, UnityEngine.AndroidJavaObject jobj, string name, params object[] args) { try { result = jobj.Call <T>(name, args); return(true); } catch (AndroidJavaException e) { Debug.LogError("Exception calling activity method " + name + ": " + e); return(false); } }
/// <summary> /// 调用方法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="result"></param> /// <param name="jobj"></param> /// <param name="name"></param> /// <param name="args"></param> /// <returns></returns> public static bool UPvr_CallMethod(UnityEngine.AndroidJavaObject jobj, string name, params object[] args) { try { jobj.Call(name, args); return(true); } catch (AndroidJavaException e) { Debug.LogError(" Exception calling activity method " + name + ": " + e); return(false); } }
UnityEngine.AndroidJavaObject GetPluginInstance() { if (activityContext == null) { using (UnityEngine.AndroidJavaClass activityClass = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer")) { activityContext = activityClass.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); } } using (UnityEngine.AndroidJavaClass pluginClass = new UnityEngine.AndroidJavaClass(packageName + "." + className)) { if (unityMusicPluginInstance == null) { unityMusicPluginInstance = pluginClass.CallStatic <UnityEngine.AndroidJavaObject>("instance"); unityMusicPluginInstance.Call("setContext", activityContext); } } return(unityMusicPluginInstance); }
public static object UnboxArray(AndroidJavaObject obj) { Array array; if (obj == null) { return(null); } AndroidJavaClass class2 = new AndroidJavaClass("java/lang/reflect/Array"); AndroidJavaObject obj3 = obj.Call <AndroidJavaObject>("getClass", new object[0]).Call <AndroidJavaObject>("getComponentType", new object[0]); string str = obj3.Call <string>("getName", new object[0]); object[] args = new object[] { obj }; int num = class2.Call <int>("getLength", args); if (obj3.Call <bool>("IsPrimitive", new object[0])) { if ("I" != str) { if ("Z" != str) { if ("B" != str) { if ("S" != str) { if ("J" != str) { if ("F" != str) { if ("D" != str) { if ("C" != str) { throw new Exception("JNI; Unknown argument type '" + str + "'"); } array = new char[num]; } else { array = new double[num]; } } else { array = new float[num]; } } else { array = new long[num]; } } else { array = new short[num]; } } else { array = new byte[num]; } } else { array = new bool[num]; } } else { array = new int[num]; } } else if ("java.lang.String" == str) { array = new string[num]; } else if ("java.lang.Class" == str) { array = new AndroidJavaClass[num]; } else { array = new AndroidJavaObject[num]; } for (int i = 0; i < num; i++) { object[] objArray2 = new object[] { obj, i }; array.SetValue(Unbox(class2.CallStatic <AndroidJavaObject>("get", objArray2)), i); } return(array); }
public void RecordResolution(PurchaseResolutionType resolution) { purchase.Call("recordResolution", (int)resolution); }
public static object Unbox(AndroidJavaObject obj) { object result; if (obj == null) { result = null; } else { AndroidJavaObject androidJavaObject = obj.Call <AndroidJavaObject>("getClass", new object[0]); string b = androidJavaObject.Call <string>("getName", new object[0]); if ("java.lang.Integer" == b) { result = obj.Call <int>("intValue", new object[0]); } else if ("java.lang.Boolean" == b) { result = obj.Call <bool>("booleanValue", new object[0]); } else if ("java.lang.Byte" == b) { result = obj.Call <byte>("byteValue", new object[0]); } else if ("java.lang.Short" == b) { result = obj.Call <short>("shortValue", new object[0]); } else if ("java.lang.Long" == b) { result = obj.Call <long>("longValue", new object[0]); } else if ("java.lang.Float" == b) { result = obj.Call <float>("floatValue", new object[0]); } else if ("java.lang.Double" == b) { result = obj.Call <double>("doubleValue", new object[0]); } else if ("java.lang.Character" == b) { result = obj.Call <char>("charValue", new object[0]); } else if ("java.lang.String" == b) { result = obj.Call <string>("toString", new object[0]); } else if ("java.lang.Class" == b) { result = new AndroidJavaClass(obj.GetRawObject()); } else if (androidJavaObject.Call <bool>("isArray", new object[0])) { result = _AndroidJNIHelper.UnboxArray(obj); } else { result = obj; } } return(result); }
public void FinishPurchase() { result.Call("finishPurchase"); }
public static object UnboxArray(AndroidJavaObject obj) { if (obj == null) { return(null); } AndroidJavaClass androidJavaClass = new AndroidJavaClass("java/lang/reflect/Array"); AndroidJavaObject androidJavaObject = obj.Call <AndroidJavaObject>("getClass", new object[0]); AndroidJavaObject androidJavaObject2 = androidJavaObject.Call <AndroidJavaObject>("getComponentType", new object[0]); string text = androidJavaObject2.Call <string>("getName", new object[0]); int num = androidJavaClass.Call <int>("getLength", new object[] { obj }); Array array; if (androidJavaObject2.Call <bool>("IsPrimitive", new object[0])) { if ("I" == text) { array = new int[num]; } else if ("Z" == text) { array = new bool[num]; } else if ("B" == text) { array = new byte[num]; } else if ("S" == text) { array = new short[num]; } else if ("J" == text) { array = new long[num]; } else if ("F" == text) { array = new float[num]; } else if ("D" == text) { array = new double[num]; } else { if (!("C" == text)) { throw new Exception("JNI; Unknown argument type '" + text + "'"); } array = new char[num]; } } else if ("java.lang.String" == text) { array = new string[num]; } else if ("java.lang.Class" == text) { array = new AndroidJavaClass[num]; } else { array = new AndroidJavaObject[num]; } for (int i = 0; i < num; i++) { array.SetValue(_AndroidJNIHelper.Unbox(androidJavaClass.CallStatic <AndroidJavaObject>("get", new object[] { obj, i })), i); } return(array); }
public static string GetSignature(object obj) { if (obj == null) { return("Ljava/lang/Object;"); } Type type = (!(obj is Type)) ? obj.GetType() : ((Type)obj); if (AndroidReflection.IsPrimitive(type)) { if (type.Equals(typeof(int))) { return("I"); } if (type.Equals(typeof(bool))) { return("Z"); } if (type.Equals(typeof(byte))) { return("B"); } if (type.Equals(typeof(short))) { return("S"); } if (type.Equals(typeof(long))) { return("J"); } if (type.Equals(typeof(float))) { return("F"); } if (type.Equals(typeof(double))) { return("D"); } if (type.Equals(typeof(char))) { return("C"); } return(string.Empty); } else { if (type.Equals(typeof(string))) { return("Ljava/lang/String;"); } if (obj is AndroidJavaProxy) { AndroidJavaObject androidJavaObject = new AndroidJavaObject(((AndroidJavaProxy)obj).javaInterface.GetRawClass()); return("L" + androidJavaObject.Call <string>("getName", new object[0]) + ";"); } if (type.Equals(typeof(AndroidJavaRunnable))) { return("Ljava/lang/Runnable;"); } if (type.Equals(typeof(AndroidJavaClass))) { return("Ljava/lang/Class;"); } if (type.Equals(typeof(AndroidJavaObject))) { if (obj == type) { return("Ljava/lang/Object;"); } AndroidJavaObject androidJavaObject2 = (AndroidJavaObject)obj; using (AndroidJavaObject androidJavaObject3 = androidJavaObject2.Call <AndroidJavaObject>("getClass", new object[0])) { return("L" + androidJavaObject3.Call <string>("getName", new object[0]) + ";"); } } if (!AndroidReflection.IsAssignableFrom(typeof(Array), type)) { throw new Exception(string.Concat(new object[] { "JNI: Unknown signature for type '", type, "' (obj = ", obj, ") ", (type != obj) ? "instance" : "equal" })); } if (type.GetArrayRank() != 1) { throw new Exception("JNI: System.Array in n dimensions is not allowed"); } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append('['); stringBuilder.Append(_AndroidJNIHelper.GetSignature(type.GetElementType())); return(stringBuilder.ToString()); } }