UpdateService.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.emato.ich.update;
  2. import com.emato.ich.utils.Log;
  3. import androidx.annotation.NonNull;
  4. import com.emato.ich.api.ICSPClient;
  5. import com.emato.ich.utils.BaseUtils;
  6. import com.xuexiang.xupdate.XUpdate;
  7. import com.xuexiang.xupdate.proxy.IUpdateHttpService;
  8. import com.zhy.http.okhttp.OkHttpUtils;
  9. import com.zhy.http.okhttp.callback.FileCallBack;
  10. import com.zhy.http.okhttp.callback.StringCallback;
  11. import org.jetbrains.annotations.NotNull;
  12. import java.io.File;
  13. import java.io.IOException;
  14. import java.util.HashMap;
  15. import java.util.Map;
  16. import java.util.Objects;
  17. import java.util.concurrent.TimeUnit;
  18. import okhttp3.Call;
  19. import okhttp3.Callback;
  20. import okhttp3.OkHttpClient;
  21. import okhttp3.Request;
  22. import okhttp3.Response;
  23. /**
  24. * XUpdate需要的更新服务
  25. * 已废弃 使用了XUpdateAPI新的方法
  26. */
  27. @Deprecated
  28. public class UpdateService implements IUpdateHttpService {
  29. private static final String TAG = UpdateService.class.getName();
  30. private static final OkHttpClient client = new OkHttpClient.Builder().callTimeout(10, TimeUnit.MINUTES).readTimeout(10, TimeUnit.MINUTES).build();
  31. @Override
  32. public void asyncGet(@NonNull @NotNull String url, @NonNull @NotNull Map<String, Object> params, @NonNull @NotNull Callback callBack) {
  33. OkHttpUtils.get()
  34. .url(url)
  35. .addParams("clientId", BaseUtils.getClientId())
  36. .build()
  37. .execute(new StringCallback() {
  38. @Override
  39. public void onError(Call call, Exception e, int id) {
  40. callBack.onError(e);
  41. }
  42. @Override
  43. public void onResponse(String response, int id) {
  44. callBack.onSuccess(response);
  45. }
  46. });
  47. }
  48. private Map<String, String> transform(Map<String, Object> params) {
  49. Map<String, String> map = new HashMap<>();
  50. params.keySet().forEach(key -> {
  51. map.put(key, String.valueOf(params.get(key)));
  52. });
  53. map.put("clientId", BaseUtils.getClientId());
  54. return map;
  55. }
  56. /**
  57. * 调用服务器获取更新所需的参数
  58. * @param url url
  59. * @param params 请求参数
  60. * @param callBack 回调
  61. */
  62. @Override
  63. public void asyncPost(@NonNull @NotNull String url, @NonNull @NotNull Map<String, Object> params, @NonNull @NotNull Callback callBack) {
  64. OkHttpUtils.post()
  65. // .params(transform(params))
  66. .url(url)
  67. .addParams("clientId", BaseUtils.getClientId())
  68. // .addParams("clientId", "285F18D92D0B6568")
  69. .build()
  70. .execute(new StringCallback() {
  71. @Override
  72. public void onError(Call call, Exception e, int id) {
  73. callBack.onError(e);
  74. }
  75. @Override
  76. public void onResponse(String response, int id) {
  77. //response = "{\"Code\":0,\"Msg\":\"\",\"UpdateStatus\":2,\"VersionCode\":3,\"VersionName\":\"1.0.2\",\"ModifyContent\":\"1、优化api接口。\\r\\n2、添加使用demo演示。\\r\\n3、新增自定义更新服务API接口。\\r\\n4、优化更新提示界面。\",\"DownloadUrl\":\"http://icsp-api.ds-bay.com/profile/app-release.apk\",\"ApkSize\":10759906,\"ApkMd5\":\"3452dfgdg\"}";
  78. callBack.onSuccess(response);
  79. }
  80. });
  81. }
  82. /**
  83. * XUpdate调用的下载回调
  84. * @param url url
  85. * @param path 文件路径
  86. * @param fileName 文件名
  87. * @param callback 回调
  88. */
  89. @Override
  90. public void download(@NonNull @NotNull String url, @NonNull @NotNull String path, @NonNull @NotNull String fileName, @NonNull @NotNull DownloadCallback callback) {
  91. OkHttpUtils.initClient(client);
  92. OkHttpUtils.get()
  93. .url(url)
  94. .tag(url)
  95. .build()
  96. .execute(new FileCallBack(path, fileName) {
  97. @Override
  98. public void inProgress(float progress, long total, int id) {
  99. callback.onProgress(progress, total);
  100. Log.i(TAG, "inProgress: ====================================>progress完成! ===>" + progress);
  101. }
  102. @Override
  103. public void onBefore(Request request, int id) {
  104. callback.onStart();
  105. Log.i(TAG, "onBefore: ====================================>Before 完成! ");
  106. }
  107. @Override
  108. public void onError(Call call, Exception e, int id) {
  109. callback.onError(e);
  110. Log.e(TAG, "onError: ====================================>下载出现异常! ", e);
  111. }
  112. @Override
  113. public void onResponse(File response, int id) {
  114. callback.onSuccess(response);
  115. Log.i(TAG, "onResponse: ====================================>下载完成! 等待安装....");
  116. }
  117. });
  118. }
  119. @Override
  120. public void cancelDownload(@NonNull @NotNull String url) {
  121. }
  122. }