MainActivity.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. package com.wenting.youyiplugin;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.pm.ApplicationInfo;
  5. import android.content.pm.PackageInfo;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.os.Message;
  10. import android.text.TextUtils;
  11. import android.util.Log;
  12. import android.view.View;
  13. import android.content.Intent;
  14. import com.unity3d.player.UnityPlayer;
  15. import com.unity3d.player.UnityPlayerActivity;
  16. import com.excean.lysdk.client.request.CustomizeRequest;
  17. import com.excean.lysdk.client.request.LoginRequest;
  18. import com.excean.lysdk.client.request.PayRequest;
  19. import com.excean.lysdk.client.task.CustomizeTask;
  20. import com.excean.lysdk.client.task.CustomizeSender;
  21. import com.excean.lysdk.client.task.CustomizeReceiver;
  22. import com.excean.lysdk.client.task.LoginResp;
  23. import com.excean.lysdk.client.task.LoginTask;
  24. import com.excean.lysdk.client.task.PayTask;
  25. import com.excean.lysdk.client.PayResp;
  26. import com.excean.lysdk.client.Response;
  27. import java.util.HashMap;
  28. import java.util.Map;
  29. public class MainActivity extends UnityPlayerActivity
  30. {
  31. private final String LOG = "YOUYI_YUNCLIENT_PLUGIN";
  32. private String gameObjectName;
  33. private CustomizeReceiver customizeReceiver;
  34. private Activity mActivity;
  35. private Context mContext;
  36. private void callUnityFunc(String funcName, String paramStr)
  37. {
  38. if (TextUtils.isEmpty(this.gameObjectName)) {
  39. Log.e(LOG, "gameObject is null, please set gameObject first");
  40. return;
  41. }
  42. UnityPlayer.UnitySendMessage(this.gameObjectName, funcName, paramStr);
  43. }
  44. private void executeWeiBundle(Bundle bundle)
  45. {
  46. if (bundle == null) return;
  47. String msg = bundle.getString("msg", null);
  48. String data = bundle.getString("data", null);
  49. if (msg == null || msg.length() <= 0) return;
  50. callUnityFunc(msg, data);
  51. }
  52. public void init(String gameObjectName)
  53. {
  54. this.gameObjectName = gameObjectName;
  55. new Thread(new Runnable() {
  56. @Override
  57. public void run() {
  58. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  59. CustomizeRequest customizeRequest = new CustomizeRequest();
  60. customizeRequest.putString("wenting_lc_method", "init");
  61. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  62. if (!response.isSuccessful()) {
  63. Log.e(LOG, "Execute init Fail !!!");
  64. callUnityFunc("OnInitFailed", "");
  65. } else {
  66. executeWeiBundle(response.data());
  67. }
  68. }
  69. }).start();
  70. }
  71. public void login()
  72. {
  73. new Thread(new Runnable() {
  74. @Override
  75. public void run() {
  76. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  77. CustomizeRequest customizeRequest = new CustomizeRequest();
  78. customizeRequest.putString("wenting_lc_method", "login");
  79. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  80. if (!response.isSuccessful()) {
  81. Log.e(LOG, "Execute init Fail !!!");
  82. callUnityFunc("OnLoginFailed", "");
  83. } else {
  84. executeWeiBundle(response.data());
  85. }
  86. }
  87. }).start();
  88. }
  89. public void switchAccountLogin()
  90. {
  91. new Thread(new Runnable() {
  92. @Override
  93. public void run() {
  94. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  95. CustomizeRequest customizeRequest = new CustomizeRequest();
  96. customizeRequest.putString("wenting_lc_method", "switchAccountLogin");
  97. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  98. if (!response.isSuccessful()) {
  99. Log.e(LOG, "Execute switchAccountLogin Fail !!!");
  100. } else {
  101. executeWeiBundle(response.data());
  102. }
  103. }
  104. }).start();
  105. }
  106. public void pay(String cpOrderId, String amount,
  107. String goodsId, String goodsName,
  108. String roleId, String roleName,
  109. String serverId, String serverName,
  110. int level, String extendParams)
  111. {
  112. new Thread(new Runnable() {
  113. @Override
  114. public void run() {
  115. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  116. CustomizeRequest customizeRequest = new CustomizeRequest();
  117. customizeRequest.putString("wenting_lc_method", "pay");
  118. customizeRequest.putString("cpOrderId", cpOrderId);
  119. customizeRequest.putString("amount", amount);
  120. customizeRequest.putString("goodsId", goodsId);
  121. customizeRequest.putString("goodsName", goodsName);
  122. customizeRequest.putString("roleId", roleId);
  123. customizeRequest.putString("roleName", roleName);
  124. customizeRequest.putString("serverId", serverId);
  125. customizeRequest.putString("serverName", serverName);
  126. customizeRequest.putInt("level", level);
  127. customizeRequest.putString("extendParams", extendParams);
  128. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  129. if (!response.isSuccessful()) {
  130. Log.e(LOG, "Execute init Fail !!!");
  131. callUnityFunc("OnPayFailed", "");
  132. } else {
  133. executeWeiBundle(response.data());
  134. }
  135. }
  136. }).start();
  137. }
  138. public void createRoleLog(String roleId, String roleName,
  139. String serverId, String serverName,
  140. int level, String spare)
  141. {
  142. new Thread(new Runnable() {
  143. @Override
  144. public void run() {
  145. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  146. CustomizeRequest customizeRequest = new CustomizeRequest();
  147. customizeRequest.putString("wenting_lc_method", "createRoleLog");
  148. customizeRequest.putString("roleId", roleId);
  149. customizeRequest.putString("roleName", roleName);
  150. customizeRequest.putString("serverId", serverId);
  151. customizeRequest.putString("serverName", serverName);
  152. customizeRequest.putInt("level", level);
  153. customizeRequest.putString("spare", spare);
  154. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  155. if (!response.isSuccessful()) {
  156. Log.e(LOG, "Execute createRoleLog Fail !!!");
  157. }
  158. }
  159. }).start();
  160. }
  161. public void loginRoleLog(String roleId, String roleName,
  162. String serverId, String serverName,
  163. int level, String spare)
  164. {
  165. new Thread(new Runnable() {
  166. @Override
  167. public void run() {
  168. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  169. CustomizeRequest customizeRequest = new CustomizeRequest();
  170. customizeRequest.putString("wenting_lc_method", "loginRoleLog");
  171. customizeRequest.putString("roleId", roleId);
  172. customizeRequest.putString("roleName", roleName);
  173. customizeRequest.putString("serverId", serverId);
  174. customizeRequest.putString("serverName", serverName);
  175. customizeRequest.putInt("level", level);
  176. customizeRequest.putString("spare", spare);
  177. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  178. if (!response.isSuccessful()) {
  179. Log.e(LOG, "Execute loginRoleLog Fail !!!");
  180. }
  181. }
  182. }).start();
  183. }
  184. public void levelLog(String roleId, String roleName,
  185. String serverId, String serverName,
  186. int level, String spare)
  187. {
  188. new Thread(new Runnable() {
  189. @Override
  190. public void run() {
  191. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  192. CustomizeRequest customizeRequest = new CustomizeRequest();
  193. customizeRequest.putString("wenting_lc_method", "levelLog");
  194. customizeRequest.putString("roleId", roleId);
  195. customizeRequest.putString("roleName", roleName);
  196. customizeRequest.putString("serverId", serverId);
  197. customizeRequest.putString("serverName", serverName);
  198. customizeRequest.putInt("level", level);
  199. customizeRequest.putString("spare", spare);
  200. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  201. if (!response.isSuccessful()) {
  202. Log.e(LOG, "Execute levelLog Fail !!!");
  203. }
  204. }
  205. }).start();
  206. }
  207. public void reportAction(HashMap<String, Object> params)
  208. {
  209. new Thread(new Runnable() {
  210. @Override
  211. public void run() {
  212. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  213. CustomizeRequest customizeRequest = new CustomizeRequest();
  214. customizeRequest.putString("wenting_lc_method", "reportAction");
  215. for (Map.Entry<String, Object> entry : params.entrySet())
  216. {
  217. Object val = entry.getValue();
  218. if (val instanceof Integer) {
  219. customizeRequest.putInt(entry.getKey(), (Integer) val);
  220. } else if (val instanceof Boolean) {
  221. customizeRequest.putBoolean(entry.getKey(), (Boolean) val);
  222. } else if (val instanceof Byte) {
  223. customizeRequest.putByte(entry.getKey(), (Byte) val);
  224. } else if (val instanceof Short) {
  225. customizeRequest.putShort(entry.getKey(), (Short) val);
  226. } else if (val instanceof Long) {
  227. customizeRequest.putLong(entry.getKey(), (Long) val);
  228. } else if (val instanceof Float) {
  229. customizeRequest.putFloat(entry.getKey(), (Float) val);
  230. } else if (val instanceof Double) {
  231. customizeRequest.putDouble(entry.getKey(), (Double) val);
  232. } else {
  233. Log.d(LOG, "Execute levelLog Fail !!! params's type is not support" + val.getClass().getName());
  234. }
  235. }
  236. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  237. if (!response.isSuccessful()) {
  238. Log.e(LOG, "Execute levelLog Fail !!!");
  239. }
  240. }
  241. }).start();
  242. }
  243. public void exit()
  244. {
  245. new Thread(new Runnable() {
  246. @Override
  247. public void run() {
  248. CustomizeTask customizeTask = new CustomizeTask(mActivity);
  249. CustomizeRequest customizeRequest = new CustomizeRequest();
  250. customizeRequest.putString("wenting_lc_method", "exit");
  251. Response response = customizeTask.sendSyncCustomizeRequest(customizeRequest);
  252. if (!response.isSuccessful()) {
  253. Log.e(LOG, "Execute exit Fail !!!");
  254. } else {
  255. executeWeiBundle(response.data());
  256. }
  257. }
  258. }).start();
  259. }
  260. // Setup activity layout
  261. @Override protected void onCreate(Bundle savedInstanceState)
  262. {
  263. mActivity = this;
  264. mContext = this;
  265. if (customizeReceiver == null)
  266. {
  267. customizeReceiver = new CustomizeReceiver(mContext, new CustomizeReceiver.a() {
  268. @Override
  269. public void onCustomizeMessageChange(Bundle bundle) {
  270. //收到微端消息
  271. executeWeiBundle(bundle);
  272. }
  273. });
  274. }
  275. super.onCreate(savedInstanceState);
  276. }
  277. // Quit Unity
  278. @Override protected void onDestroy ()
  279. {
  280. super.onDestroy();
  281. if (customizeReceiver != null)
  282. {
  283. customizeReceiver.destroy();
  284. }
  285. }
  286. }