CallBridge.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. namespace Scenes.scripts.utils {
  4. public class CallBridge {
  5. private static AndroidJavaObject bridge = new AndroidJavaClass("com.rokid.unitycallbridge.UnityCallBridge");
  6. public static List<string> cmdlist = new List<string>();
  7. static Request.Callback joinCallback = new Request.Callback();
  8. public static AndroidJavaObject callAndroid(Request request) {
  9. return bridge.CallStatic<AndroidJavaObject>("onUnityCall", createBaseRequest(request));
  10. }
  11. public static bool covertBool(AndroidJavaObject obj) {
  12. return bridge.CallStatic<bool>("ConvertBoolean", obj);
  13. }
  14. public static int covertInt(AndroidJavaObject obj) {
  15. return bridge.CallStatic<int>("ConvertInt", obj);
  16. }
  17. public static string covertString(AndroidJavaObject obj) {
  18. return bridge.CallStatic<string>("ConvertString", obj);
  19. }
  20. public static float ConvertFloat(AndroidJavaObject obj) {
  21. return bridge.CallStatic<float>("ConvertFloat", obj);
  22. }
  23. public static double ConvertDouble(AndroidJavaObject obj) {
  24. return bridge.CallStatic<double>("ConvertDouble", obj);
  25. }
  26. public static string fromObject2Json(AndroidJavaObject obj) {
  27. return bridge.CallStatic<string>("fromObject2Json", obj);
  28. }
  29. public static Request.Callback createCallback(string name, string method) {
  30. return createCallback(name, method, null);
  31. }
  32. public static Request.Callback createCallback(string name, string method, string param) {
  33. joinCallback.name = name;
  34. joinCallback.method = method;
  35. joinCallback.param = param;
  36. return joinCallback;
  37. }
  38. private static string createBaseRequest(Request request) {
  39. return JsonUtility.ToJson(request);
  40. }
  41. public static void registerStaticService(string serviceClass) {
  42. AndroidJavaClass service = new AndroidJavaClass(serviceClass);
  43. bridge.CallStatic("registerStaticService", service);
  44. }
  45. //public static void registerInstance(string serviceObject)
  46. //{
  47. // AndroidJavaObject javaObject = new
  48. //}
  49. }
  50. }