WifiDisplayModelCallback.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using LitJson;
  5. using UnityEngine;
  6. namespace Unity.XR.PICO.TOBSupport
  7. {
  8. public class WifiDisplayModelCallback : AndroidJavaProxy
  9. {
  10. public Action<List<WifiDisplayModel>> mCallback;
  11. public WifiDisplayModelCallback(Action<List<WifiDisplayModel>> callback) : base("com.picoxr.tobservice.interfaces.StringCallback")
  12. {
  13. mCallback = callback;
  14. }
  15. public void CallBack(string var1)
  16. {
  17. Debug.Log("ToBService WifiDisplayModelCallback 回调:" + var1);
  18. List<WifiDisplayModel> tmp = JsonToWifiDisplayModel(var1);
  19. PXR_EnterpriseTools.QueueOnMainThread(() =>
  20. {
  21. if (mCallback != null)
  22. {
  23. mCallback(tmp);
  24. }
  25. });
  26. }
  27. public List<WifiDisplayModel> JsonToWifiDisplayModel(string json)
  28. {
  29. if (string.IsNullOrEmpty(json))
  30. {
  31. return null;
  32. }
  33. List<WifiDisplayModel> ModelList = new List<WifiDisplayModel>();
  34. JsonData jsonData = JsonMapper.ToObject(json);
  35. IDictionary dictionary = jsonData as IDictionary;
  36. for (int i = 0; i < dictionary.Count; i++)
  37. {
  38. WifiDisplayModel model = new WifiDisplayModel();
  39. model.deviceAddress = jsonData[i]["deviceAddress"].ToString();
  40. model.deviceName = jsonData[i]["deviceName"].ToString();
  41. model.isAvailable = bool.Parse(jsonData[i]["isAvailable"].ToString());
  42. model.canConnect = bool.Parse(jsonData[i]["canConnect"].ToString());
  43. model.isRemembered = bool.Parse(jsonData[i]["isRemembered"].ToString());
  44. model.statusCode = int.Parse(jsonData[i]["statusCode"].ToString());
  45. model.status = jsonData[i]["status"].ToString();
  46. model.description = jsonData[i]["description"].ToString();
  47. ModelList.Add(model);
  48. }
  49. return ModelList;
  50. }
  51. }
  52. }