Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.31 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System;
  5.  
  6. public class AndroidClientPlugin : MonoBehaviour {
  7. private float TEST;
  8.  
  9. private AndroidJavaClass cls_UnityPlayer;
  10. private AndroidJavaObject obj_Activity;
  11. private AndroidJavaClass cls_CompassActivity;
  12. // Use this for initialization
  13. void Start () {
  14.  
  15. AndroidJNI.AttachCurrentThread();
  16. cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  17. obj_Activity = cls_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
  18. cls_CompassActivity = new AndroidJavaClass("com.lab.Android.AndroidClientPlugin");
  19.  
  20. cls_CompassActivity.SetStatic<String>("ServerAddressValue", "192.168.1.5");
  21. cls_CompassActivity.SetStatic<String>("ServerPortValue", "8881");
  22.  
  23. }
  24. void OnGUI() {
  25. GUI.Label(new Rect(Screen.width / 2 -200, Screen.height / 2, 400,100), "x = " + TEST.ToString());
  26. }
  27. void Update()
  28. {
  29. if(cls_CompassActivity.CallStatic<bool>("GetData"))
  30. {
  31. TEST = cls_CompassActivity.CallStatic<float>("getPosX");
  32. }
  33. }
  34. }
  35.  
  36. package com.lab.Android;
  37. import java.util.concurrent.ExecutionException;
  38. import java.util.concurrent.TimeUnit;
  39. import java.util.concurrent.TimeoutException;
  40.  
  41. import com.unity3d.player.UnityPlayer;
  42. import com.unity3d.player.UnityPlayerActivity;
  43.  
  44. import android.os.AsyncTask;
  45. import android.os.Bundle;
  46. import android.os.Looper;
  47. import android.os.StrictMode;
  48. import android.util.Log;
  49. import android.content.Context;
  50. import android.content.Intent;
  51. import android.app.Activity;
  52.  
  53. public class AndroidClientPlugin extends UnityPlayerActivity {
  54.  
  55. //Server address parameters
  56. public static String ServerAddressValue;
  57. public static String ServerPortValue;
  58. //Tracker parameters
  59. public static String vServerName;
  60. public static String vSensorNumber;
  61.  
  62. private static SensorData vTaskResult;
  63.  
  64. public static cTask BackgroundTask;
  65.  
  66. @Override
  67. protected void onCreate(Bundle icicle) {
  68. super.onCreate(icicle);
  69.  
  70. //set thread strict mode off
  71. StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
  72. StrictMode.setThreadPolicy(policy);
  73.  
  74. vTaskResult = new SensorData();
  75. ServerAddressValue = "192.168.1.5";
  76. ServerPortValue = "8881";
  77. vServerName = "Tracker0";
  78. vSensorNumber = "0";
  79. BackgroundTask = new cTask();
  80. }
  81.  
  82. @Override
  83. protected void onResume()
  84. {
  85. super.onResume();
  86. }
  87.  
  88. @Override
  89. protected void onStop()
  90. {
  91. super.onStop();
  92. }
  93.  
  94. public static boolean GetData()
  95. {
  96. cTaskResult taskResult = new cTaskResult();
  97. taskResult = BackgroundTask.DoAsyncTask(ServerAddressValue, ServerPortValue, vServerName, vSensorNumber);
  98. vTaskResult = taskResult.ResultData;
  99. return taskResult.DataIsReady;
  100. }
  101.  
  102.  
  103. public static class cTaskResult
  104. {
  105. public boolean DataIsReady;
  106. public SensorData ResultData;
  107. public cTaskResult()
  108. {
  109. DataIsReady = false;
  110. ResultData = new SensorData();
  111. }
  112. }
  113.  
  114. public static class cTask
  115. {
  116. public cTask()
  117. {
  118. }
  119. public cTaskResult DoAsyncTask(String serverAddress, String serverPort, String trackerName, String trackerSensorNumber)
  120. {
  121. cTaskResult Result = new cTaskResult();
  122. GetDataTask Task;
  123. Task = new GetDataTask();
  124. Task.execute(serverAddress, serverPort, trackerName, trackerSensorNumber, Result);
  125. try {
  126. Result = Task.get(1, TimeUnit.SECONDS);
  127. } catch (InterruptedException e) {
  128. // TODO Auto-generated catch block
  129. e.printStackTrace();
  130. } catch (ExecutionException e) {
  131. // TODO Auto-generated catch block
  132. e.printStackTrace();
  133. } catch (TimeoutException e) {
  134. // TODO Auto-generated catch block
  135. e.printStackTrace();
  136. }
  137. return Result;
  138. }
  139.  
  140. public static class GetDataTask extends AsyncTask<Object, Void, cTaskResult>
  141. {
  142. @Override
  143. protected void onPreExecute() {
  144. super.onPreExecute();
  145. }
  146.  
  147. @Override
  148. protected cTaskResult doInBackground(Object... params) {
  149. cTaskResult TMPData = new cTaskResult();
  150. //doing network requests
  151. //TMPData.DataIsReady = NetClient.getInstance().GetData((String)params[0], (String)params[1], (String)params[2], Integer.valueOf((String)params[3]), TMPData.ResultData);
  152. //TMPData is a result of network operations
  153. TMPData.DataIsReady = true;
  154. TMPData.ResultData = new SensorData();
  155.  
  156. return TMPData;
  157. }
  158.  
  159. @Override
  160. protected void onPostExecute(cTaskResult result) {
  161. super.onPostExecute(result);
  162. }
  163. }
  164. }
  165.  
  166. public static float getPosX()
  167. {
  168. return vTaskResult.posX;
  169. }
  170. }
  171.  
  172. 09-11 12:56:05.514: E/CMarlinMediator(137): Error : MarlinMediator Failed to get TrustedTime
  173. 09-11 12:56:05.594: E/CMarlinMediator(137): Error : MarlinMediator Failed to get TrustedTime
  174. 09-11 12:56:12.184: E/Adreno200-EGL(7590): <qeglDrvAPI_eglGetConfigAttrib:484>: EGL_BAD_ATTRIBUTE
  175. 09-11 12:56:12.184: E/Adreno200-EGL(7590): <qeglDrvAPI_eglGetConfigAttrib:484>: EGL_BAD_ATTRIBUTE
  176. 09-11 12:56:12.184: E/Adreno200-EGL(7590): <qeglDrvAPI_eglGetConfigAttrib:484>: EGL_BAD_ATTRIBUTE
  177. 09-11 12:56:14.304: E/AndroidRuntime(7590): FATAL EXCEPTION: GLThread 741
  178. 09-11 12:56:14.304: E/AndroidRuntime(7590): java.lang.ExceptionInInitializerError
  179. 09-11 12:56:14.304: E/AndroidRuntime(7590): at com.lab.Android.AndroidClientPlugin$cTask.DoAsyncTask(AndroidClientPlugin.java:128)
  180. 09-11 12:56:14.304: E/AndroidRuntime(7590): at com.lab.Android.AndroidClientPlugin.GetData(AndroidClientPlugin.java:79)
  181. 09-11 12:56:14.304: E/AndroidRuntime(7590): at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
  182. 09-11 12:56:14.304: E/AndroidRuntime(7590): at com.unity3d.player.UnityPlayer.onDrawFrame(Unknown Source)
  183. 09-11 12:56:14.304: E/AndroidRuntime(7590): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
  184. 09-11 12:56:14.304: E/AndroidRuntime(7590): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
  185. 09-11 12:56:14.304: E/AndroidRuntime(7590): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
  186. 09-11 12:56:14.304: E/AndroidRuntime(7590): at android.os.Handler.<init>(Handler.java:121)
  187. 09-11 12:56:14.304: E/AndroidRuntime(7590): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
  188. 09-11 12:56:14.304: E/AndroidRuntime(7590): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
  189. 09-11 12:56:14.304: E/AndroidRuntime(7590): at android.os.AsyncTask.<clinit>(AsyncTask.java:190)
  190. 09-11 12:56:14.304: E/AndroidRuntime(7590): ... 6 more
  191. 09-11 12:56:15.194: E/CMarlinMediator(137): Error : MarlinMediator Failed to get TrustedTime
  192. 09-11 12:56:15.234: E/CMarlinMediator(137): Error : MarlinMediator Failed to get TrustedTime
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement