public override void FloorPlaceGetPose(out Vector3 position, out Quaternion orientation) { position = new Vector3(); orientation = new Quaternion(); if (m_KudanAR_Instance != null) { m_KudanAR_Instance.Call("updateArbi", _floorHeight); AndroidJavaObject floorPosition = m_KudanAR_Instance.Get <AndroidJavaObject>("m_FloorPosition"); AndroidJavaObject floorOrientation = m_KudanAR_Instance.Get <AndroidJavaObject>("m_FloorOrientation"); position.x = floorPosition.Get <float>("x"); position.y = floorPosition.Get <float>("y"); position.z = floorPosition.Get <float>("z"); orientation.x = floorOrientation.Get <float>("x"); orientation.y = floorOrientation.Get <float>("y"); orientation.z = floorOrientation.Get <float>("z"); orientation.w = floorOrientation.Get <float>("w"); } }
public void onAttributionChanged(AndroidJavaObject attribution) { if (callback != null) { AdjustAttribution adjustAttribution = new AdjustAttribution(); adjustAttribution.trackerName = ((!(attribution.Get <string>(AdjustUtils.KeyTrackerName) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyTrackerName) : null); adjustAttribution.trackerToken = ((!(attribution.Get <string>(AdjustUtils.KeyTrackerToken) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyTrackerToken) : null); adjustAttribution.network = ((!(attribution.Get <string>(AdjustUtils.KeyNetwork) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyNetwork) : null); adjustAttribution.campaign = ((!(attribution.Get <string>(AdjustUtils.KeyCampaign) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyCampaign) : null); adjustAttribution.adgroup = ((!(attribution.Get <string>(AdjustUtils.KeyAdgroup) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyAdgroup) : null); adjustAttribution.creative = ((!(attribution.Get <string>(AdjustUtils.KeyCreative) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyCreative) : null); adjustAttribution.clickLabel = ((!(attribution.Get <string>(AdjustUtils.KeyClickLabel) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyClickLabel) : null); adjustAttribution.adid = ((!(attribution.Get <string>(AdjustUtils.KeyAdid) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyAdid) : null); callback(adjustAttribution); } }
public static PlayFabNotificationPackage GetPushCache() { AndroidJavaObject package = new AndroidJavaObject("com.playfab.unityplugin.GCM.PlayFabNotificationPackage"); package = PlayFabPushCacheClass.CallStatic <AndroidJavaObject>("getPushCache"); PlayFabNotificationPackage cache = new PlayFabNotificationPackage(); if (package != null) { cache.Title = package.Get <string>("Title"); cache.Message = package.Get <string>("Message"); cache.Icon = package.Get <string>("Icon"); cache.Sound = package.Get <string>("Sound"); cache.CustomData = package.Get <string>("CustomData"); } else { Debug.Log("Package was null"); } return(cache); }
public string scan(int x, int y) { if (proxyObject == null) { return(id); } AndroidJavaObject scanResult = proxyObject.Call <AndroidJavaObject>("scan", x, y); if (scanResult == null) { id = "null"; Debug.Log("No smart piece found at (" + x + "," + y + ")"); } else { id = scanResult.Get <string>("id"); AndroidJavaObject loc = scanResult.Get <AndroidJavaObject>("location"); string bank = loc.Get <string>("first"); string index = loc.Get <string>("second"); Debug.Log("Found smart piece at (x,y):" + x + "," + y + " with id: " + id + " at :" + bank + " " + index); } return(id); //added }
public void autoScan() { if (proxyObject == null) { return; } AndroidJavaObject[] scanResults = proxyObject.Call <AndroidJavaObject[]>("autoScan"); if (scanResults.Length <= 0) { Debug.Log("No smart piece found"); } else { for (int i = 0; i < scanResults.Length; i++) { string id = scanResults[i].Get <string>("id"); AndroidJavaObject loc = scanResults[i].Get <AndroidJavaObject>("location"); string bank = loc.Get <string>("first"); string index = loc.Get <string>("second"); Debug.Log("SM #" + (i + 1) + " with id: " + id + "at: " + bank + " " + index); } } }
public static int GetVersionCode() { AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject @static = androidJavaClass.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject androidJavaObject = @static.Call <AndroidJavaObject>("getPackageManager", new object[0]); string text = @static.Call <string>("getPackageName", new object[0]); AndroidJavaObject androidJavaObject2 = androidJavaObject.Call <AndroidJavaObject>("getPackageInfo", new object[2] { text, 0 }); return(androidJavaObject2.Get <int>("versionCode")); }
//===================================================================================================== public static List <PackageInfo> GetInstalledApps() { if (Application.platform != RuntimePlatform.Android) { return(null); } AndroidJavaObject packages = currentActivity.Call <AndroidJavaObject>("getPackageManager").Call <AndroidJavaObject>("getInstalledPackages", 0); int size = packages.Call <int>("size"); List <PackageInfo> list = new List <PackageInfo>(); for (int i = 0; i < size; i++) { AndroidJavaObject info = packages.Call <AndroidJavaObject>("get", i); PackageInfo packageInfo = new PackageInfo(); packageInfo.firstInstallTime = info.Get <long>("firstInstallTime"); packageInfo.packageName = info.Get <string>("packageName"); packageInfo.lastUpdateTime = info.Get <long>("lastUpdateTime"); packageInfo.versionCode = info.Get <int>("versionCode"); packageInfo.versionName = info.Get <string>("versionName"); list.Add(packageInfo); } return(list); }
private static void populateOBBData() { if (obb_version != 0) { return; } using (AndroidJavaClass unity_player = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { AndroidJavaObject current_activity = unity_player.GetStatic <AndroidJavaObject>("currentActivity"); obb_package = current_activity.Call <string>("getPackageName"); AndroidJavaObject package_info = current_activity.Call <AndroidJavaObject>("getPackageManager").Call <AndroidJavaObject>("getPackageInfo", obb_package, 0); obb_version = package_info.Get <int>("versionCode"); } }
internal virtual void Init(AndroidJavaObject obj) { Id = obj.Get <long>("id"); Uri = obj.Get <string>("uri"); Path = obj.Get <string>("path"); Size = obj.Get <long>("size"); DisplayName = obj.Get <string>("displayName"); Title = obj.Get <string>("title"); }
void loginCallback(AndroidJavaObject result) { var appleIdSubsystem = new List <SignInWithApplePlayerIdentitySubsystem>(); SubsystemManager.GetInstances(appleIdSubsystem); if (appleIdSubsystem.Count > 0 && appleIdSubsystem[0].m_LoginCompleted != null) { var args = new IdentityLoginCallbackArgs(); var code = result.Get <string>("code"); var displayName = result.Get <string>("displayName"); var email = result.Get <string>("email"); var error = result.Get <string>("error"); if (error != null) { args.error = new Error(); args.error.message = error; } else { args.userInfo = new UserInfo(); args.userInfo.displayName = displayName; args.userInfo.email = email; args.externalToken = new ExternalToken(); args.externalToken.authCode = code; args.externalToken.idProvider = k_ProviderId; var settings = AppleLoader.GetSettings(); args.externalToken.clientId = settings?.m_ServiceId; args.externalToken.redirectUri = settings?.m_CallbackEndpoint; } appleIdSubsystem[0].m_LoginCompleted(args); appleIdSubsystem[0].m_LoginCompleted = null; } }
public override bool Show(int uniqueId, double x, double y, double width, double height) { AndroidJavaObject adView = AdViewForAdViewId(uniqueId); if (adView == null) { return(false); } AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity"); activity.Call("runOnUiThread", new AndroidJavaRunnable(() => { AndroidJavaObject context = activity.Call <AndroidJavaObject>("getApplicationContext"); AndroidJavaObject resources = context.Call <AndroidJavaObject> ("getResources"); AndroidJavaObject displayMetrics = resources.Call <AndroidJavaObject> ("getDisplayMetrics"); float density = displayMetrics.Get <float> ("density"); AndroidJavaObject layoutParams = new AndroidJavaObject("android.widget.LinearLayout$LayoutParams", (int)(width * density), (int)(height * density)); AndroidJavaObject linearLayout = new AndroidJavaObject("android.widget.LinearLayout", activity); AndroidJavaClass R = new AndroidJavaClass("android.R$id"); AndroidJavaObject view = activity.Call <AndroidJavaObject> ("findViewById", R.GetStatic <int> ("content")); AndroidJavaObject parent = adView.Call <AndroidJavaObject>("getParent"); if (parent != null) { IntPtr ptr = AndroidJNI.GetMethodID(parent.GetRawClass(), "removeView", "(Landroid/view/View;)V"); if (ptr != IntPtr.Zero) { parent.Call("removeView", adView); } else { AndroidJNI.ExceptionClear(); } } layoutParams.Call("setMargins", (int)(x * density), (int)(y * density), 0, 0); linearLayout.Call("addView", adView, layoutParams); view.Call("addView", linearLayout); })); return(true); }
public FieldType Get <FieldType>(string fieldName) { #if UNITY_ANDROID if (Application.platform == RuntimePlatform.Android) { return(jo.Get <FieldType>(fieldName)); } else { return(default(FieldType)); } #else return(default(FieldType)); #endif }
public DeviceAudioInformation(AndroidJavaObject jo) { AndroidJavaClass versionClass = new AndroidJavaClass("android/os/Build$VERSION"); int sdkLevel = versionClass.GetStatic <int>("SDK_INT"); this.nativeSamplingRate = jo.Get <int>("nativeSamplingRate"); this.optimalBufferSize = jo.Get <int>("optimalBufferSize"); this.lowLatencyFeature = jo.Get <bool>("lowLatencyFeature"); this.proAudioFeature = jo.Get <bool>("proAudioFeature"); if (sdkLevel >= 23) { //This one is a Java array, we need to do JNI manually to each elements AndroidJavaObject outputDevicesJo = jo.Get <AndroidJavaObject>("outputDevices"); IntPtr outputDevicesRaw = outputDevicesJo.GetRawObject(); int outputDeviceAmount = AndroidJNI.GetArrayLength(outputDevicesRaw); this.audioDevices = new AndroidAudioDeviceType[outputDeviceAmount]; for (int i = 0; i < outputDeviceAmount; i++) { IntPtr outputDevice = AndroidJNI.GetObjectArrayElement(outputDevicesRaw, i); IntPtr audioDeviceInfoClass = AndroidJNI.GetObjectClass(outputDevice); IntPtr getTypeMethod = AndroidJNIHelper.GetMethodID(audioDeviceInfoClass, "getType"); int type = AndroidJNI.CallIntMethod(outputDevice, getTypeMethod, new jvalue[] { }); this.audioDevices[i] = (AndroidAudioDeviceType)type; } } else { this.audioDevices = new AndroidAudioDeviceType[0]; } //Debug.Log(this.ToString()); }
/// <summary> /// JNI 获取属性值 /// </summary> /// <param name="className">类路径</param> /// <param name="filedName">静态属性名</param> public static T GetField <T>(string className, string fieldName) { T res = default(T); #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaObject clazzObj = null; using (clazzObj = new AndroidJavaObject(className)) { res = clazzObj.Get <T>(fieldName); } clazzObj.Dispose(); clazzObj = null; #endif return(res); }
public string GetAddress() { string currentAddress = "获取定位中..."; try { currentAddress = tcMap.Get <String>("currentAddress"); } catch (Exception e) { return(e.Message); } return(currentAddress); }
private static int getDensitySize(int size) { #if UNITY_ANDROID AndroidJavaObject displayMetrics = new AndroidJavaObject("android.util.DisplayMetrics"); AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activityObject = unityPlayerClass.GetStatic <AndroidJavaObject> ("currentActivity"); AndroidJavaObject windowManagerObject = activityObject.Call <AndroidJavaObject> ("getWindowManager"); AndroidJavaObject displayObject = windowManagerObject.Call <AndroidJavaObject> ("getDefaultDisplay"); displayObject.Call("getMetrics", displayMetrics); float density = displayMetrics.Get <float> ("density"); return((int)(((size / density) + 0.5f))); #else return(0); #endif }
public void DeviceConnectedEventHandler(object sender, AndroidMessageArgs <AndroidJavaObject> args) { AndroidJavaObject device = args.data; int pid = device.Get <int> ("PID"); if (!__Generics.ContainsKey(pid.ToString())) { // UnityEngine.Debug.Log(args.Message); GenericHIDDevice info = new GenericHIDDevice(__Generics.Count, device, this); info.hidInterface = this; ResolveDevice(info); } }
/*void RenderExternalAlpha8Texture() * { * if (Application.platform != RuntimePlatform.Android) * { * return; * } * * double now = (DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds; * * if (timeLastExecution < now) * { * timeLastExecution = now + INTERVAL_IN_MS; * * AndroidJavaClass plugin = new AndroidJavaClass(Config.pluginClassString); * AndroidJavaObject returnedObject = plugin.CallStatic<AndroidJavaObject>("getAlpha8TextureResult"); * * Int32 texPtr = returnedObject.Get<Int32>("texturePtr"); * Int32 width = returnedObject.Get<Int32>("width"); * Int32 height = returnedObject.Get<Int32>("height"); * * // Debug.Log("texture pointer: " + texPtr + ", width: " + width + ", height: " + height); * * if (width <= 0 || height <= 0 || texPtr <= 0) * { * return; * } * * if (null == nativeTexture || nativeTexture.width != width || nativeTexture.height != height) * { * nativeTexture = Texture2D.CreateExternalTexture( * width, height, TextureFormat.Alpha8, false, false, (IntPtr)texPtr); * nativeTexture.filterMode = FilterMode.Point; * } * * this.GetComponent<Renderer>().material.mainTexture = nativeTexture; * nativeTexture.UpdateExternalTexture((IntPtr)texPtr); * } * }*/ void RenderExternalArgbTexture() { if (Application.platform != RuntimePlatform.Android) { return; } double now = (DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds; if (timeLastExecution < now) { timeLastExecution = now + INTERVAL_IN_MS; AndroidJavaClass plugin = new AndroidJavaClass(Config.pluginClassString); AndroidJavaObject returnedObject = plugin.CallStatic <AndroidJavaObject>("getArgbTextureResult"); Int32 texPtr = returnedObject.Get <Int32>("texturePtr"); Int32 width = returnedObject.Get <Int32>("width"); Int32 height = returnedObject.Get <Int32>("height"); if (width <= 0 || height <= 0 || texPtr <= 0) { return; } if (null == nativeTexture || nativeTexture.width != width || nativeTexture.height != height) { nativeTexture = Texture2D.CreateExternalTexture( width, height, TextureFormat.ARGB32, false, false, (IntPtr)texPtr); nativeTexture.filterMode = FilterMode.Point; } this.GetComponent <Renderer>().material.mainTexture = nativeTexture; nativeTexture.UpdateExternalTexture((IntPtr)texPtr); } }
// ReSharper disable once InconsistentNaming // ReSharper disable once UnusedMember.Local void onTextureDataReceived(AndroidJavaObject jo, string fileName) { AndroidJavaObject bufferObject = jo.Get <AndroidJavaObject>("Buffer"); byte[] buffer = AndroidJNIHelper.ConvertFromJNIArray <byte[]>(bufferObject.GetRawObject()); GoodiesSceneHelper.Queue(() => { var tex = new Texture2D(2, 2); tex.LoadImage(buffer); var result = new ImagePickResult(fileName, tex); _onPhotoReceivedAction(result); }); }
private void AdaptPhoneScreenSize() { AndroidJavaClass j = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = j.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject displayManager = currentActivity.Call <AndroidJavaObject>("getSystemService", new AndroidJavaObject("java.lang.String", "display")); AndroidJavaObject display = displayManager.Call <AndroidJavaObject>("getDisplay", 0); AndroidJavaObject outSize = new AndroidJavaObject("android.graphics.Point"); display.Call("getRealSize", outSize); float _real_screen_width = outSize.Get <int>("x"); float _real_screen_height = outSize.Get <int>("y"); _touch_area_x_min = -0.93f; _touch_area_x_max = 0.93f; float _real_touch_area_top = _real_screen_height - (Design_Phone_Screen_Height - Design_Touch_Area_Top) * _real_screen_width / Design_Phone_Screen_Width; float _real_touch_area_bottom = _real_screen_height - (Design_Phone_Screen_Height - Design_Touch_Area_Bottom) * _real_screen_width / Design_Phone_Screen_Width; _touch_area_y_min = _real_touch_area_bottom / _real_screen_height; _touch_area_y_max = _real_touch_area_top / _real_screen_height; _touch_area_y_min = -(_touch_area_y_min - 0.5f) * 2f; // value range maps to -1f ~ 1f _touch_area_y_max = -(_touch_area_y_max - 0.5f) * 2f; // value range maps to -1f ~ 1f _touch_area_y_center = (_touch_area_y_min + _touch_area_y_max) / 2f; _screen_adapted = true; }
AndroidJavaObject GetUnity() { if (Application.isEditor) { return(null); } Debug.Log("Get Unity"); AndroidJNI.AttachCurrentThread(); AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject jp = jo.Get <AndroidJavaObject> ("mUnityPlayer"); return(jp); }
private static void populateOBBData() { if (obb_version == 0) { using (AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { AndroidJavaObject @static = androidJavaClass.GetStatic <AndroidJavaObject>("currentActivity"); obb_package = @static.Call <string>("getPackageName", new object[0]); AndroidJavaObject androidJavaObject = @static.Call <AndroidJavaObject>("getPackageManager", new object[0]).Call <AndroidJavaObject>("getPackageInfo", new object[2] { obb_package, 0 }); obb_version = androidJavaObject.Get <int>("versionCode"); } } }
/// <summary> /// Get application version code. /// </summary> public static int GetVersionCode() { #if UNITY_EDITOR && UNITY_ANDROID return(UnityEditor.PlayerSettings.Android.bundleVersionCode); #elif UNITY_ANDROID AndroidJavaClass contextCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject context = contextCls.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject packageMngr = context.Call <AndroidJavaObject>("getPackageManager"); string packageName = context.Call <string>("getPackageName"); AndroidJavaObject packageInfo = packageMngr.Call <AndroidJavaObject>("getPackageInfo", packageName, 0); return(packageInfo.Get <int>("versionCode")); #else return(0); #endif }
void RenderTexture() { AndroidJavaClass plugin = new AndroidJavaClass(Config.pluginClassString); AndroidJavaObject returnedObject = plugin.CallStatic <AndroidJavaObject>("getArgbTextureResult"); Int32 texPtr = returnedObject.Get <Int32>("texturePtr"); Int32 width = returnedObject.Get <Int32>("width"); Int32 height = returnedObject.Get <Int32>("height"); if (width <= 0 || height <= 0 || texPtr <= 0) { return; } if (null == nativeTexture || nativeTexture.width != width || nativeTexture.height != height) { nativeTexture = Texture2D.CreateExternalTexture( width, height, TextureFormat.ARGB32, false, false, (IntPtr)texPtr); nativeTexture.filterMode = FilterMode.Point; } this.GetComponent <RawImage>().texture = nativeTexture; nativeTexture.UpdateExternalTexture((IntPtr)texPtr); }
public static int dip2px(AndroidJavaObject activityJO, float dpValue) { try { AndroidJavaObject resourceJO = activityJO.Call <AndroidJavaObject>("getResources"); AndroidJavaObject displayMetricsJO = resourceJO.Call <AndroidJavaObject>("getDisplayMetrics"); float scale = displayMetricsJO.Get <float>("density"); return((int)(dpValue * scale + 0.5f)); } catch (System.Exception e) { //Main.errorString += string.Format("dip2px failed!! Exception={0}\n",e); BaseLogSystem.internal_Info("dip2px failed!!!! Exception={0}", e); } return((int)dpValue); }
private void OnVideoDataArrive(AndroidJavaObject videoFrameData) { byte[] buffer = videoFrameData.Get <byte[]>("buffer"); //int size = videoFrameData.Get<int>("bufferSize"); //int width = videoFrameData.Get<int>("videoWidth"); //int height = videoFrameData.Get<int>("videoHeight"); //Debug.Log(string.Format("buf length:{0}, size:{1}, width:{2}, height:{3}。", buffer.Length, size, width, height)); videoFrames.Add(buffer); //回收android侧的 帧数据 对象 if (pluginInst != null) { pluginInst.Call("RecycleFrameData", videoFrameData); } }
/// <summary> /// Постоянно проверяет доступ к файлам /// </summary> private void Update() { #if UNITY_ANDROID && !UNITY_EDITOR GetVideoList.Call("UpdateCheckPerm"); allowed = GetVideoList.Get <bool>("allowed"); #endif #if UNITY_EDITOR allowed = true; #endif if (allowed) { Draw(); } }
/// <summary> /// Gets the version code. /// </summary> /// <returns>The version code.</returns> /// <param name="packageName">Package name.</param> public static int GetVersionCode(string packageName) { AndroidJavaObject unityActivity = GetUnityActivity(); if (unityActivity != null && !string.IsNullOrEmpty(packageName)) { AndroidJavaObject packageInfo = GetPackageInfo(packageName); if (packageInfo != null) { return(packageInfo.Get <int>("versionCode")); } } return(-1); }
/// <summary> /// Gets the name of the version. /// </summary> /// <returns>The version name.</returns> /// <param name="packageName">Package name.</param> public static string GetVersionName(string packageName) { AndroidJavaObject unityActivity = GetUnityActivity(); if (unityActivity != null && !string.IsNullOrEmpty(packageName)) { AndroidJavaObject packageInfo = GetPackageInfo(packageName); if (packageInfo != null) { return(packageInfo.Get <string>("versionName")); } } return("Not Set"); }
static float AndroidDevicePixelRatio() { using ( AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer") ) { using ( AndroidJavaObject metricsInstance = new AndroidJavaObject("android.util.DisplayMetrics"), activityInstance = unityPlayerClass.GetStatic <AndroidJavaObject>("currentActivity"), windowManagerInstance = activityInstance.Call <AndroidJavaObject>("getWindowManager"), displayInstance = windowManagerInstance.Call <AndroidJavaObject>("getDefaultDisplay") ) { displayInstance.Call("getMetrics", metricsInstance); return(metricsInstance.Get <float>("density")); } } }