diff --git a/app/build.gradle b/app/build.gradle index 1c940f8..86a745c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,6 +47,7 @@ dependencies { implementation files('libs\\ModuleAPI_J.jar') implementation files('libs\\reader(1).jar') implementation files('libs\\UHF67_v3.6.jar') + implementation 'androidx.preference:preference:1.2.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' @@ -55,5 +56,6 @@ dependencies { //如果您需要使用 OkSocketServer 功能在客户端或者Java程序,您还需要依赖下面的Server插件包和上面的一起依赖. implementation 'com.tonystark.android:socket-server:4.1.0' implementation 'com.lzy.net:okgo:3.0.4' + implementation 'com.google.code.gson:gson:2.10.1' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 45a8b4e..6111f56 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools" > @@ -16,26 +16,42 @@ android:supportsRtl="true" android:theme="@style/Theme.WriteEpc" android:usesCleartextTraffic="true" - tools:targetApi="31"> + tools:targetApi="31" > + android:name=".SettingsActivity" + android:exported="false" + android:label="@string/title_activity_settings" /> + + + + + + + android:exported="true" + android:permission="TODO" + tools:ignore="ExportedReceiver" /> + + android:theme="@style/socketActivityStyle" /> + android:exported="true" > @@ -44,7 +60,7 @@ + android:exported="true" > @@ -53,9 +69,10 @@ + android:exported="true" > + diff --git a/app/src/main/java/com/example/writeepc/HomeActivity.java b/app/src/main/java/com/example/writeepc/HomeActivity.java new file mode 100644 index 0000000..c52a460 --- /dev/null +++ b/app/src/main/java/com/example/writeepc/HomeActivity.java @@ -0,0 +1,56 @@ +package com.example.writeepc; + +import android.content.Intent; +import android.os.Bundle; +import android.view.KeyEvent; +import android.widget.RadioButton; +import android.widget.Toast; + +import com.example.writeepc.base.BaseActivity; +import com.example.writeepc.base.MyApplication; +import com.handheld.uhfr.UHFRManager; + +public class HomeActivity extends BaseActivity { + private UHFRManager uhfrManager; + private long exitTime = 0L; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_home); + uhfrManager = UHFRManager.getInstance(); + MyApplication.getApplication().setUhfrManager(uhfrManager); + RadioButton button1 = this.findViewById(R.id.home_1); + RadioButton button2 = this.findViewById(R.id.home_2); + button1.setOnClickListener(v -> { + startActivity(new Intent(this, ShuangqianActivity.class)); + }); + button2.setOnClickListener(v -> { + startActivity(new Intent(this, ShuangqianActivity2.class)); + }); + + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == 4) { + if ((System.currentTimeMillis() - exitTime) > 2000) { + Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); + exitTime = System.currentTimeMillis(); + return true; + } else { + finish(); + } + } + return false; + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (uhfrManager != null) { + uhfrManager.close(); + uhfrManager = null; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/writeepc/SettingsActivity.java b/app/src/main/java/com/example/writeepc/SettingsActivity.java new file mode 100644 index 0000000..47e5599 --- /dev/null +++ b/app/src/main/java/com/example/writeepc/SettingsActivity.java @@ -0,0 +1,32 @@ +package com.example.writeepc; + +import android.os.Bundle; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.preference.PreferenceFragmentCompat; + +public class SettingsActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.settings_activity); + if (savedInstanceState == null) { + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.settings, new SettingsFragment()) + .commit(); + } + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + } + } + + public static class SettingsFragment extends PreferenceFragmentCompat { + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.root_preferences, rootKey); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/writeepc/ShuangqianActivity.java b/app/src/main/java/com/example/writeepc/ShuangqianActivity.java index 57df46c..0e15355 100644 --- a/app/src/main/java/com/example/writeepc/ShuangqianActivity.java +++ b/app/src/main/java/com/example/writeepc/ShuangqianActivity.java @@ -2,14 +2,13 @@ package com.example.writeepc; import android.content.IntentFilter; import android.os.Bundle; -import android.util.Log; -import android.view.KeyEvent; import android.view.View; -import android.widget.Toast; import androidx.databinding.DataBindingUtil; import com.example.writeepc.base.BaseActivity; +import com.example.writeepc.base.okgo.MyRecultCall; +import com.example.writeepc.base.okgo.MyResult; import com.example.writeepc.broadcast.MyScannerCall; import com.example.writeepc.broadcast.MyScannerReceiver; import com.example.writeepc.databinding.ActivityShuangqianBinding; @@ -18,20 +17,18 @@ import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; import com.lzy.okgo.request.base.Request; -import okhttp3.MediaType; - public class ShuangqianActivity extends BaseActivity implements MyScannerCall { - public MediaType mediaType = MediaType.parse("text/xml; charset=utf-8"); + private ActivityShuangqianBinding binding; private MyScannerReceiver myReceiver; - private long exitTime = 0L; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = DataBindingUtil.setContentView(this, R.layout.activity_shuangqian); - initUHFRManager(); + initUHFRManager1(); initDialog(); myReceiver = new MyScannerReceiver(this); @@ -50,9 +47,7 @@ public class ShuangqianActivity extends BaseActivity implements MyScannerCall { @Override protected void readTidReault(boolean readState, String result, byte[] rdata) { super.readTidReault(readState, result, rdata); - binding.socketEpc.setText(result); - } // 清空数据 @@ -65,112 +60,104 @@ public class ShuangqianActivity extends BaseActivity implements MyScannerCall { public void submit(View view) { String epc = binding.socketEpc.getText().toString(); String code = binding.socketBarcode.getText().toString(); - if (epc.isEmpty() || code.isEmpty()) return; - callWebService(buildSoapRequest(epc, code)); - + haohuaSubmit(epc, code); + // callWebService(buildSoapRequest(epc, code));//双钱 } - // MES确认 - public void mesCormf(View view) { - String epc = binding.socketEpc.getText().toString(); - if (epc.isEmpty()) return; - callWebService(buildSelectRequest(epc)); - } + private void haohuaSubmit(String epc, String code) { + OkGo.post("http://192.168.26.26:5050/UMInterface/RFID/barcodeAndRFIDBinding") + .params("rfid", epc).params("barCode", code).execute(new MyRecultCall(dialog, this) { + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + MyResult body = response.body(); + try { + if (body.getCode() == 200) { + tipsDialog.setTip(true, body.getInfo()); + tipsDialog.show(); + binding.socketBarcode.setText(null); + binding.socketEpc.setText(null); + } else { + tipsDialog.setTip(false, body.getInfo()); + tipsDialog.show(); + } + } catch (Exception e) { + tipsDialog.setTip(false, "接口返回信息异常"); + tipsDialog.show(); + } - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == 4) { - if ((System.currentTimeMillis() - exitTime) > 2000) { - Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); - exitTime = System.currentTimeMillis(); - return true; - } else { - finish(); } - } - return false; + }); + } + private void callWebService(String soapRequest) { // 发送 POST 请求 - OkGo.post("http://10.135.55.206:99/WebService.asmx") - .headers("Content-Type", "text/xml; charset=utf-8") - .upString(soapRequest, mediaType) - .execute(new StringCallback() { - @Override - public void onStart(Request request) { - super.onStart(request); - dialog.show(); + OkGo.post("http://10.135.55.206:99/WebService.asmx").headers("Content-Type", "text/xml; charset=utf-8").upString(soapRequest, mediaType).execute(new StringCallback() { + @Override + public void onStart(Request request) { + super.onStart(request); + dialog.show(); + } + + @Override + public void onSuccess(Response response) { + // 处理响应结果 + String result = response.body(); + try { + String str = ""; + int faultstringIndex = result.indexOf(str); + if (faultstringIndex > -1) { + String faultstring = result.substring(faultstringIndex + str.length(), result.indexOf("")); + tipsDialog.setTip(false, faultstring); + tipsDialog.show(); + return; } - - @Override - public void onSuccess(Response response) { - // 处理响应结果 - String result = response.body(); - Log.e("TAG", "onSuccess:" + result); - - String str = ""; - int faultstringIndex = result.indexOf(str); - if (faultstringIndex > -1) { - String faultstring = result.substring(faultstringIndex + str.length(), result.indexOf("")); - tipsDialog.setTip(false, faultstring); + int codeIndex = result.indexOf(""); + if (codeIndex > -1) { + String resultCode = result.substring(codeIndex + 6, result.indexOf("")); + String resultMsg = result.substring(result.indexOf("") + 5, result.indexOf("")); + if (resultCode.equals("200")) { + tipsDialog.setTip(true, resultMsg); tipsDialog.show(); - return; - } - int codeIndex = result.indexOf(""); - if (codeIndex > -1) { - String resultCode = result.substring(codeIndex + 6, result.indexOf("")); - String resultMsg = result.substring(result.indexOf("") + 5, result.indexOf("")); - tipsDialog.setTip(resultCode.equals("200"), resultMsg); + binding.socketBarcode.setText(null); + binding.socketEpc.setText(null); + } else { + tipsDialog.setTip(false, resultMsg); tipsDialog.show(); } - - - + // clearView(null); } + } catch (Exception e) { + tipsDialog.setTip(false, "接口返回信息异常"); + tipsDialog.show(); + } + } - @Override - public void onError(Response response) { - } - - @Override - public void onFinish() { - super.onFinish(); - dialog.dismiss(); - } - }); + @Override + public void onFinish() { + super.onFinish(); + dialog.dismiss(); + } + }); } // 创建提交信息 private String buildSoapRequest(String epcid, String barcode) { - StringBuilder soapRequest = new StringBuilder(); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append("").append(epcid).append(""); - soapRequest.append("").append(barcode).append(""); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append(""); - return soapRequest.toString(); - } - - // 创建验证信息 - private String buildSelectRequest(String epcid) { - StringBuilder soapRequest = new StringBuilder(); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append("").append(epcid).append(""); - soapRequest.append(""); - soapRequest.append(""); - soapRequest.append(""); - return soapRequest.toString(); + String soapRequest = "" + + "" + + "" + + "" + + "" + epcid + "" + + "" + barcode + "" + + "" + + "" + + ""; + return soapRequest; } diff --git a/app/src/main/java/com/example/writeepc/ShuangqianActivity2.java b/app/src/main/java/com/example/writeepc/ShuangqianActivity2.java new file mode 100644 index 0000000..c17fbda --- /dev/null +++ b/app/src/main/java/com/example/writeepc/ShuangqianActivity2.java @@ -0,0 +1,253 @@ +package com.example.writeepc; + +import static androidx.constraintlayout.helper.widget.MotionEffect.TAG; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.util.Log; +import android.view.View; + +import androidx.databinding.DataBindingUtil; + +import com.example.writeepc.adapter.MyMesInfoAdapter; +import com.example.writeepc.base.BaseActivity; +import com.example.writeepc.base.okgo.MyRecultCall; +import com.example.writeepc.base.okgo.MyResult; +import com.example.writeepc.been.MESInfo; +import com.example.writeepc.databinding.ActivityShuangqian2Binding; +import com.google.gson.reflect.TypeToken; +import com.lzy.okgo.OkGo; +import com.lzy.okgo.callback.StringCallback; +import com.lzy.okgo.model.Response; +import com.lzy.okgo.request.base.Request; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; + +public class ShuangqianActivity2 extends BaseActivity { + private ActivityShuangqian2Binding binding; +private MyMesInfoAdapter adapter; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = DataBindingUtil.setContentView(this, R.layout.activity_shuangqian2); + initUHFRManager1(); + initDialog(); + adapter=new MyMesInfoAdapter(this); + binding.setAdapter(adapter); + } + + public void dataReadRFID(View view) { + readEPC(12); + // String msg="37f82ad8-6a16-4b9b-880c-78ebf644970a0224084188831000000000000008043511320452025-08-04T00:00:002025-08-04T10:55:31.5171L403张磊HL49691000YC250804L403204511P24084188832025-08-04T10:55:31.5170100S2045-0500"; + // jiexi(msg); + + + } + + @Override + protected void readTidReault(boolean readState, String result, byte[] rdata) { + super.readTidReault(readState, result, rdata); + binding.dataEpc.setText(result); + + if (readState) { + // callWebService(buildSelectRequest(result)); + haohuaMesSelect(result); + + + } + } + + private void haohuaMesSelect(String result) { + OkGo.post("http://192.168.26.26:5050/UMInterface/RFID/tyreTracingBack") + .params("rfid",result) + .execute(new MyRecultCall(dialog,this) { + @SuppressLint("NotifyDataSetChanged") + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + MyResult body = response.body(); + try { + if (body.getCode() == 200) { + List list=gson.fromJson(body.getDataJson(),new TypeToken>(){}.getType()); + if (list.isEmpty()){ + tipsDialog.setTip(false, "未返回信息"); + tipsDialog.show(); + return; + } + List mesInfos=new ArrayList<>(list.size()); + list.forEach(item->{ + String[] split = item.split(":"); + MESInfo mesInfo=new MESInfo(); + mesInfo.setTitle(split[0]); + mesInfo.setInfo(split[1]); + mesInfos.add(mesInfo); + }); + adapter.setList(mesInfos); + + } else { + tipsDialog.setTip(false, body.getInfo()); + tipsDialog.show(); + adapter.setList(null); + + } + } catch (Exception e) { + tipsDialog.setTip(false, "接口返回信息异常,解析失败"); + tipsDialog.show(); + + } + adapter.notifyDataSetChanged(); + } + }); + } + + private void callWebService(String soapRequest) { + // 发送 POST 请求 + OkGo.post("http://10.135.55.206:99/WebService.asmx") + .headers("Content-Type", "text/xml; charset=utf-8") + .upString(soapRequest, mediaType) + .execute(new StringCallback() { + @Override + public void onStart(Request request) { + super.onStart(request); + dialog.show(); + } + + @Override + public void onSuccess(Response response) { + // 处理响应结果 + String result = response.body(); + try { + String str = ""; + int faultstringIndex = result.indexOf(str); + if (faultstringIndex > -1) { + String faultstring = result.substring(faultstringIndex + str.length(), result.indexOf("")); + tipsDialog.setTip(false, faultstring); + tipsDialog.show(); + return; + } + int codeIndex = result.indexOf(""); + if (codeIndex > -1) { + String resultCode = result.substring(codeIndex + 6, result.indexOf("")); + if (resultCode.equals("200")) { + String resultMsg = result.substring(result.indexOf("") + 8, result.indexOf("")); + + jiexi(resultMsg); + return; + } + String resultMsg = result.substring(result.indexOf("") + 5, result.indexOf("")); + tipsDialog.setTip(false, resultMsg); + tipsDialog.show(); + } + } catch (Exception e) { + tipsDialog.setTip(false, "接口返回信息异常"); + tipsDialog.show(); + } + } + + + @Override + public void onFinish() { + super.onFinish(); + dialog.dismiss(); + } + }); + } + + + // 创建验证信息 + private String buildSelectRequest(String epcid) { + StringBuilder soapRequest = new StringBuilder(); + soapRequest.append(""); + soapRequest.append(""); + soapRequest.append(""); + soapRequest.append(""); + soapRequest.append("").append(epcid).append(""); + soapRequest.append(""); + soapRequest.append(""); + soapRequest.append(""); + return soapRequest.toString(); + } + + private void jiexi(String msg) { + StringBuilder stringBuilder = new StringBuilder(); + + try { + XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); + XmlPullParser parser = factory.newPullParser(); + parser.setInput(new StringReader(msg)); + String currentTag = null; + int eventType = parser.getEventType(); + while (eventType != XmlPullParser.END_DOCUMENT) { + switch (eventType) { + case XmlPullParser.START_TAG: + currentTag = parser.getName(); + + break; + + case XmlPullParser.TEXT: + if (currentTag != null && parser.getText() != null) { + String text = parser.getText().trim(); + // 解析字段值 + switch (currentTag) { + + case "BARCODE": + stringBuilder.append("条 码:").append(text).append("\n"); + break; + + case "BUITNBR": + stringBuilder.append("ERP编码:").append(text).append("\n"); + + break; + case "BUITDSC": + stringBuilder.append("规格名称:").append(text).append("\n"); + + break; + case "BUDAT": + stringBuilder.append("成型日期:").append(text).append("\n"); + break; + case "BUTIM": + stringBuilder.append("成型时间:").append(text).append("\n"); + break; + case "BUSHT": + stringBuilder.append("成型班次:").append(text).append("\n"); + break; + case "BUMCH": + stringBuilder.append("成型机台:").append(text).append("\n"); + break; + case "BUNAM": + stringBuilder.append("成 型 工:").append(text).append("\n"); + break; + case "BUNAMCOD": + stringBuilder.append("成型工账号:").append(text).append("\n"); + break; + case "BUPLANCOD": + stringBuilder.append("成型计划号:").append(text).append("\n"); + break; + + case "TYRENO": + stringBuilder.append("生 胎 码:").append(text).append("\n"); + break; + } + } + break; + + case XmlPullParser.END_TAG: + currentTag = null; + break; + } + eventType = parser.next(); + } + binding.dataInfo.setText(stringBuilder.toString()); + } catch (XmlPullParserException | IOException e) { + Log.e("TAG", "解析XML失败: " + e.getMessage()); + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/writeepc/adapter/MyMesInfoAdapter.java b/app/src/main/java/com/example/writeepc/adapter/MyMesInfoAdapter.java new file mode 100644 index 0000000..95fdaad --- /dev/null +++ b/app/src/main/java/com/example/writeepc/adapter/MyMesInfoAdapter.java @@ -0,0 +1,68 @@ +package com.example.writeepc.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.writeepc.BR; +import com.example.writeepc.R; +import com.example.writeepc.been.MESInfo; +import com.example.writeepc.databinding.ItemMesInfoBinding; + +import java.util.List; + +public class MyMesInfoAdapter extends RecyclerView.Adapter { + + private Context context; + private LayoutInflater inflater; + private List list; + + public MyMesInfoAdapter(Context context) { + this.context = context; + inflater = LayoutInflater.from(context); + } + + public void setList(List list) { + this.list = list; + } + + @NonNull + @Override + public MyMesInfoAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemMesInfoBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_mes_info, parent, false); + return new MyMesInfoAdapterViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyMesInfoAdapterViewHolder holder, int position) { + ItemMesInfoBinding binding = holder.getBinding(); + MESInfo mesInfo = list.get(position); + binding.setVariable(BR.data,mesInfo); + + } + + @Override + public int getItemCount() { + return list == null ? 0 : list.size(); + } + + class MyMesInfoAdapterViewHolder extends RecyclerView.ViewHolder { + private ItemMesInfoBinding binding; + + public ItemMesInfoBinding getBinding() { + return binding; + } + + public MyMesInfoAdapterViewHolder(ItemMesInfoBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } + +} diff --git a/app/src/main/java/com/example/writeepc/base/BaseActivity.java b/app/src/main/java/com/example/writeepc/base/BaseActivity.java index 9de20ee..bb3d904 100644 --- a/app/src/main/java/com/example/writeepc/base/BaseActivity.java +++ b/app/src/main/java/com/example/writeepc/base/BaseActivity.java @@ -11,23 +11,29 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.example.writeepc.dialog.TipsDialog; +import com.google.gson.Gson; import com.handheld.uhfr.UHFRManager; import com.uhf.api.cls.Reader; import cn.pda.serialport.Tools; +import okhttp3.MediaType; public class BaseActivity extends AppCompatActivity { public UHFRManager uhfrManager; public byte[] accesspwd; - public short timeOut = 2000; + public short timeOut = 2500; public MediaPlayer music; public ProgressDialog dialog; public TipsDialog tipsDialog; + public MediaType mediaType = MediaType.parse("text/xml; charset=utf-8"); + public Gson gson; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - tipsDialog=new TipsDialog(this); + tipsDialog = new TipsDialog(this); + gson = new Gson(); + } @@ -50,6 +56,17 @@ public class BaseActivity extends AppCompatActivity { // Log.e("TAG", "initUHFRManager:" + power[1]); } + public void initUHFRManager1() { + uhfrManager = MyApplication.getApplication().getUhfrManager(); + uhfrManager.setGen2session(false); + uhfrManager.setPower(22, 22); + accesspwd = Tools.HexString2Bytes("00000000"); + music = MediaPlayer.create(this, com.example.writeepc.R.raw.msg); + // int[] power = uhfrManager.getPower(); + // Log.e("TAG", "initUHFRManager:" + power[0]); + // Log.e("TAG", "initUHFRManager:" + power[1]); + } + // 1- 读取TID public void readTid() { @@ -85,13 +102,13 @@ public class BaseActivity extends AppCompatActivity { } - @Override - protected void onDestroy() { - super.onDestroy(); - if (uhfrManager != null) { - uhfrManager.close(); - uhfrManager = null; - } - - } + // @Override + // protected void onDestroy() { + // super.onDestroy(); + // if (uhfrManager != null) { + // uhfrManager.close(); + // uhfrManager = null; + // } + // + // } } diff --git a/app/src/main/java/com/example/writeepc/base/MyApplication.java b/app/src/main/java/com/example/writeepc/base/MyApplication.java index 4e71a3a..56fb2bc 100644 --- a/app/src/main/java/com/example/writeepc/base/MyApplication.java +++ b/app/src/main/java/com/example/writeepc/base/MyApplication.java @@ -3,6 +3,7 @@ package com.example.writeepc.base; import android.app.Application; import com.example.writeepc.utils.SharedPreferencesUtils; +import com.handheld.uhfr.UHFRManager; import com.lzy.okgo.OkGo; import com.lzy.okgo.cache.CacheEntity; import com.lzy.okgo.cache.CacheMode; @@ -25,7 +26,21 @@ import okhttp3.OkHttpClient; */ public class MyApplication extends Application { - MyApplication application; + + private static MyApplication application; + private UHFRManager uhfrManager; + + public static MyApplication getApplication() { + return application; + } + + public UHFRManager getUhfrManager() { + return uhfrManager; + } + + public void setUhfrManager(UHFRManager uhfrManager) { + this.uhfrManager = uhfrManager; + } @Override public void onCreate() { diff --git a/app/src/main/java/com/example/writeepc/base/okgo/MyRecultCall.java b/app/src/main/java/com/example/writeepc/base/okgo/MyRecultCall.java new file mode 100644 index 0000000..93027f4 --- /dev/null +++ b/app/src/main/java/com/example/writeepc/base/okgo/MyRecultCall.java @@ -0,0 +1,68 @@ +package com.example.writeepc.base.okgo; + +import android.app.ProgressDialog; +import android.content.Context; +import android.util.Log; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.lzy.okgo.callback.AbsCallback; +import com.lzy.okgo.model.Response; +import com.lzy.okgo.request.base.Request; + +import okhttp3.ResponseBody; + +/** + * @author wanghao + * @date 2023/11/20 14:27 + */ +public abstract class MyRecultCall extends AbsCallback { + private ProgressDialog dialog; + private Context context; + + public MyRecultCall(ProgressDialog dialog, Context context) { + this.dialog = dialog; + this.context = context; + } + @Override + public void onSuccess(Response response) { + dialog.dismiss(); + // Log.e("网络请求情况", "onSuccess:"); + } + @Override + public MyResult convertResponse(okhttp3.Response response) throws Throwable { + ResponseBody body = response.body(); + if (body == null) return null; + Gson gson = new Gson(); + MyResult resust = gson.fromJson(body.string(), MyResult.class); + resust.setDataJson(gson.toJson(resust.getData())); + return resust; + } + + + + + + @Override + public void onError(Response response) { + super.onError(response); + dialog.dismiss(); + Log.e("网络请求情况", "onError:" ); + Toast.makeText(context, "接口请求连接失败", Toast.LENGTH_LONG).show(); + + } + + @Override + public void onStart(Request request) { + super.onStart(request); + dialog.show(); + // Log.e("网络请求情况", "onStart:" ); + } + + @Override + public void onFinish() { + super.onFinish(); + dialog.dismiss(); + Log.e("网络请求情况", "onFinish:" ); + } +} diff --git a/app/src/main/java/com/example/writeepc/base/okgo/MyResult.java b/app/src/main/java/com/example/writeepc/base/okgo/MyResult.java new file mode 100644 index 0000000..b4debc4 --- /dev/null +++ b/app/src/main/java/com/example/writeepc/base/okgo/MyResult.java @@ -0,0 +1,72 @@ +package com.example.writeepc.base.okgo; + +/** + * @author wanghao + * @date 2023/12/21 15:31 + */ +public class MyResult { + private int code; + private String msg; + private String info; + private Object data; + private String dataJson; + private Object rows; + private int total; + + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public String getDataJson() { + return dataJson; + } + + public void setDataJson(String dataJson) { + this.dataJson = dataJson; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public Object getRows() { + return rows; + } + + public void setRows(Object rows) { + this.rows = rows; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/example/writeepc/been/MESInfo.java b/app/src/main/java/com/example/writeepc/been/MESInfo.java new file mode 100644 index 0000000..517fccb --- /dev/null +++ b/app/src/main/java/com/example/writeepc/been/MESInfo.java @@ -0,0 +1,22 @@ +package com.example.writeepc.been; + +public class MESInfo { + private String title; + private String info; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } +} diff --git a/app/src/main/java/com/example/writeepc/broadcast/MyScannerReceiver.java b/app/src/main/java/com/example/writeepc/broadcast/MyScannerReceiver.java index d4c2fe6..85418ae 100644 --- a/app/src/main/java/com/example/writeepc/broadcast/MyScannerReceiver.java +++ b/app/src/main/java/com/example/writeepc/broadcast/MyScannerReceiver.java @@ -5,7 +5,10 @@ import android.content.Context; import android.content.Intent; public class MyScannerReceiver extends BroadcastReceiver { - private MyScannerCall myScannerCall; + public MyScannerCall myScannerCall; + + public MyScannerReceiver() { + } public MyScannerReceiver(MyScannerCall myScannerCall) { this.myScannerCall = myScannerCall; diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml new file mode 100644 index 0000000..fc1fc65 --- /dev/null +++ b/app/src/main/res/layout/activity_home.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_shuangqian.xml b/app/src/main/res/layout/activity_shuangqian.xml index c3b7bdb..ffe0933 100644 --- a/app/src/main/res/layout/activity_shuangqian.xml +++ b/app/src/main/res/layout/activity_shuangqian.xml @@ -40,7 +40,7 @@ android:layout_gravity="center" android:text="扫描条码:" /> - - - -