RobotInfoActivity.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package com.qy.agv.activity;
  2. import static com.qy.agv.util.Constant.CACHE_SYS_CONFIG;
  3. import android.annotation.SuppressLint;
  4. import android.app.AlertDialog;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.os.Bundle;
  9. import android.os.StrictMode;
  10. import android.provider.Settings;
  11. import android.view.View;
  12. import android.widget.EditText;
  13. import com.qy.agv.R;
  14. import com.qy.agv.comm.BaseActivity;
  15. import com.qy.agv.comm.CacheService;
  16. import com.qy.agv.databinding.QyRobotInfoBinding;
  17. import com.qy.agv.update.UpdateManager;
  18. import com.qy.agv.update.UpdateXmlService;
  19. import com.qy.agv.util.Constant;
  20. import com.qy.agv.util.ProjectUtils;
  21. import com.qy.agv.util.StringUtils;
  22. import com.qy.agv.util.ToastUtils;
  23. import com.qy.agv.util.VersionUtils;
  24. import org.apache.log4j.Logger;
  25. import org.xutils.x;
  26. import java.io.InputStream;
  27. import java.net.HttpURLConnection;
  28. import java.net.SocketTimeoutException;
  29. import java.net.URL;
  30. import java.util.HashMap;
  31. public class RobotInfoActivity extends BaseActivity {
  32. public static Logger mylog =Logger.getLogger(RobotInfoActivity.class);
  33. private Context context;
  34. private QyRobotInfoBinding binding;
  35. private HashMap<String,String> mHashMap;
  36. private EditText inputServer;
  37. public AlertDialog dialog;
  38. @Override
  39. public void onCreate(Bundle savedInstanceState) {
  40. super.onCreate(savedInstanceState);
  41. binding = QyRobotInfoBinding.inflate(getLayoutInflater());
  42. setContentView(binding.getRoot());
  43. x.view().inject(this);
  44. context = this;
  45. initCommonTop2();
  46. init();
  47. }
  48. @SuppressLint("ClickableViewAccessibility")
  49. public void init(){
  50. String from = getParamString("from");
  51. binding.btnChange.setText("工单任务");
  52. binding.btnChange.setOnClickListener(v -> {
  53. finish();
  54. toActivity(HomeActivity.class);
  55. });
  56. inputServer = new EditText(this);
  57. if(Constant.user!=null) {
  58. binding.tvWorkStation.setText("操作员");
  59. binding.exit.setVisibility(View.VISIBLE);
  60. binding.tvLoginName.setText(Constant.user.getReal_name());
  61. }else{
  62. binding.tvWorkStation.setText("未登录");
  63. binding.tvLoginName.setText("未登录");
  64. binding.exit.setVisibility(View.GONE);
  65. }
  66. binding.tvVersion.setText(VersionUtils.getVerName(context));
  67. binding.tvDeviceSeq.setText(getMac());
  68. binding.versionUpdate.setOnClickListener(view->{
  69. updateApp();
  70. });
  71. binding.exit.setOnClickListener(view->{
  72. myLogout();
  73. });
  74. // binding.tvIp.setVisibility(View.GONE);
  75. binding.tvIp.setText(Constant.server_ip);
  76. updateIP();
  77. }
  78. private void updateApp(){
  79. try {
  80. boolean haveInstallPermission = context.getPackageManager().canRequestPackageInstalls();
  81. Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
  82. if (!haveInstallPermission) {
  83. context.startActivity(intent);
  84. }
  85. }catch (NoSuchMethodError e){
  86. e.printStackTrace();
  87. }
  88. if(isUpdate()) {
  89. ProjectUtils.init(this);
  90. UpdateManager updateManager = new UpdateManager(context, mHashMap);
  91. updateManager.showDownloadDialog();
  92. }else {
  93. ToastUtils.showToast(this, "已经是最新版本了");
  94. }
  95. }
  96. public boolean isUpdate(){
  97. try {
  98. int versionCode = VersionUtils.getVerCode(this);
  99. UpdateXmlService service = new UpdateXmlService();
  100. String path = ProjectUtils.getProjectURL() + "/version.xml";
  101. URL url = new URL(path);
  102. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  103. conn.setReadTimeout(5 * 1000);
  104. conn.setConnectTimeout(10000);
  105. conn.setRequestMethod("GET");
  106. StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
  107. .permitAll().build();
  108. StrictMode.setThreadPolicy(policy);
  109. InputStream inStream = conn.getInputStream();
  110. mHashMap = service.parseXml(inStream);
  111. String current_version = mHashMap.get("version");
  112. if (StringUtils.isEmpty(current_version)) {
  113. return false;
  114. }
  115. if (null != mHashMap) {
  116. int serviceCode = Integer.parseInt(current_version);
  117. return serviceCode > versionCode;
  118. }
  119. } catch (SocketTimeoutException ex){
  120. mylog.error("连接超过:", ex);
  121. } catch (Exception e) {
  122. e.printStackTrace();
  123. }
  124. return false;
  125. }
  126. private void updateIP(){
  127. binding.tvIp.setOnLongClickListener(view->{
  128. AlertDialog.Builder builder = new AlertDialog.Builder(context)
  129. .setTitle("设置IP")
  130. .setIcon(R.mipmap.logo)
  131. .setView(inputServer)
  132. .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
  133. @Override
  134. public void onClick(DialogInterface dialog, int which) {
  135. dialog.dismiss();
  136. }
  137. })
  138. .setPositiveButton(getString(R.string.sure), null);
  139. if(dialog==null){
  140. dialog = builder.show();
  141. }else{
  142. dialog.show();
  143. }
  144. inputServer.setText(binding.tvIp.getText().toString());
  145. dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
  146. public void onClick(View v){
  147. Constant.server_ip = inputServer.getText().toString();
  148. Constant.HTTP_URL = "http://"+Constant.server_ip+"/api";
  149. CacheService.getInstance(context).saveCache(CACHE_SYS_CONFIG,"server_ip", Constant.server_ip);
  150. binding.tvIp.setText(Constant.server_ip);
  151. ToastUtils.showToast(context, "设置成功");
  152. dialog.dismiss();
  153. }
  154. });
  155. return false;
  156. });
  157. }
  158. @Override
  159. public void receiverTask(String barcode) {
  160. }
  161. @Override
  162. protected String getCommonTopTitle() {
  163. return "设备信息";
  164. }
  165. @Override
  166. protected int getCommonTopICO() {
  167. return 0;
  168. }
  169. @Override
  170. protected void onDestroy() {
  171. super.onDestroy();
  172. }
  173. }