From a5d15780e844982b7f934b638547a1d5a1e14f33 Mon Sep 17 00:00:00 2001 From: wangh <123456> Date: Thu, 23 May 2024 15:15:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=86=99=E5=85=A5?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 11 +- app/libs/c5106/uhfr_v1.8.jar | Bin 0 -> 12146 bytes app/src/main/AndroidManifest.xml | 23 ++-- .../example/jinyu_rfid/AppLoginActivity.java | 14 +++ .../com/example/jinyu_rfid/MainActivity.java | 25 +++-- .../example/jinyu_rfid/WriteUserActivity.java | 106 ++++++++++-------- .../jinyu_rfid/base/MyApplication.java | 2 +- .../example/jinyu_rfid/rfid/C5106Device.java | 4 +- .../main/res/layout/activity_app_login.xml | 88 +++++++++++++++ app/src/main/res/mipmap-xhdpi/logo.png | Bin 0 -> 3049 bytes app/src/main/res/values-en-rUS/strings.xml | 1 + app/src/main/res/values-vi-rVN/strings.xml | 35 ++++++ app/src/main/res/values/arrays.xml | 10 +- app/src/main/res/values/strings.xml | 3 +- 14 files changed, 242 insertions(+), 80 deletions(-) create mode 100644 app/libs/c5106/uhfr_v1.8.jar create mode 100644 app/src/main/java/com/example/jinyu_rfid/AppLoginActivity.java create mode 100644 app/src/main/res/layout/activity_app_login.xml create mode 100644 app/src/main/res/mipmap-xhdpi/logo.png create mode 100644 app/src/main/res/values-vi-rVN/strings.xml diff --git a/app/build.gradle b/app/build.gradle index 7b06329..eb82f06 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,12 +43,13 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation files('libs\\c5106\\App_Demo_API.jar') - implementation files('libs\\c5106\\DeviceAPIver20150204.jar') - implementation files('libs\\c5106\\logutil-1.5.1.1.jar') +// implementation files('libs\\c5106\\App_Demo_API.jar') +// implementation files('libs\\c5106\\DeviceAPIver20150204.jar') +// implementation files('libs\\c5106\\logutil-1.5.1.1.jar') implementation files('libs\\c5106\\ModuleAPI_1.jar') - implementation files('libs\\c5106\\reader(1).jar') - implementation files('libs\\c5106\\UHF67_v3.6.jar') + implementation files('libs\\c5106\\uhfr_v1.8.jar') +// implementation files('libs\\c5106\\reader(1).jar') +// implementation files('libs\\c5106\\UHF67_v3.6.jar') // implementation files('libs\\ModuleAPI_J.jar') diff --git a/app/libs/c5106/uhfr_v1.8.jar b/app/libs/c5106/uhfr_v1.8.jar new file mode 100644 index 0000000000000000000000000000000000000000..44c1a70e4b866dde3db972938077b8e77e583cd3 GIT binary patch literal 12146 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 mmH(@yHh%?hDGuK literal 0 HcmV?d00001 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5ef5eb3..a34ec06 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,28 +2,25 @@ - - - - + - - + android:exported="true" /> - - + + - - + + diff --git a/app/src/main/java/com/example/jinyu_rfid/AppLoginActivity.java b/app/src/main/java/com/example/jinyu_rfid/AppLoginActivity.java new file mode 100644 index 0000000..f39eb12 --- /dev/null +++ b/app/src/main/java/com/example/jinyu_rfid/AppLoginActivity.java @@ -0,0 +1,14 @@ +package com.example.jinyu_rfid; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +public class AppLoginActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_app_login); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/jinyu_rfid/MainActivity.java b/app/src/main/java/com/example/jinyu_rfid/MainActivity.java index 6505836..3906535 100644 --- a/app/src/main/java/com/example/jinyu_rfid/MainActivity.java +++ b/app/src/main/java/com/example/jinyu_rfid/MainActivity.java @@ -38,17 +38,17 @@ public class MainActivity extends BaseActivity { private Resources resources; private Configuration config; - + private int index; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); resources = getResources(); config = resources.getConfiguration(); - var equals = SharedPreferencesUtils.getstring("language", "English").equals("中文"); - config.locale = equals ? Locale.CHINA : Locale.ENGLISH; + var languageString = SharedPreferencesUtils.getstring("language", "中文"); + getLocaleStringXML(languageString); resources.updateConfiguration(config, resources.getDisplayMetrics()); binding = DataBindingUtil.setContentView(this, R.layout.activity_main); - // binding.mainLanguage.setSelection(equals?1:0); + binding.mainLanguage.setSelection(index); loginVm = new LoginVm(); boolean isRemember = SharedPreferencesUtils.getboolean("isRemember", false); if (isRemember) { @@ -60,7 +60,18 @@ public class MainActivity extends BaseActivity { } - + private void getLocaleStringXML(String languageString){ + if (languageString.equals("中文")){ + config.locale = Locale.CHINA; + index=0; + }else if (languageString.equals("English")){ + config.locale = Locale.ENGLISH; + index=1; + }else { + config.locale =new Locale("vi","VN"); + index=2; + } + } @Override public void sanCodeCall(String code) { @@ -71,9 +82,7 @@ public class MainActivity extends BaseActivity { String pass = loginVm.getPassword(); String name = loginVm.getUsername(); var selectLanguage = binding.mainLanguage.getSelectedItem().toString(); - config.locale = selectLanguage.equals("中文") ? Locale.CHINA : Locale.ENGLISH; - - + getLocaleStringXML(selectLanguage); Map map = new HashMap<>(); map.put("UserID", name); map.put("UserPass", pass); diff --git a/app/src/main/java/com/example/jinyu_rfid/WriteUserActivity.java b/app/src/main/java/com/example/jinyu_rfid/WriteUserActivity.java index 6bc00e0..6e165a2 100644 --- a/app/src/main/java/com/example/jinyu_rfid/WriteUserActivity.java +++ b/app/src/main/java/com/example/jinyu_rfid/WriteUserActivity.java @@ -103,12 +103,10 @@ public class WriteUserActivity extends BaseActivity implements DataReturnCall, P tagUserStr.append("~"); } String user = ASCIIUtil.str2Hex(tagUserStr.toString()); - Log.e("TAG", "名文:" + tagUserStr); - Log.e("TAG", "ASCII:" + user); - Log.e("TAG", "写入长度:" + user.length()); + if (!writeUserState) { Log.e("TAG", "writeUser:" + 1); - writeUserState = rfidModel.writeUser(user, epcStr); + writeUserState = rfidModel.writeUser(validateDataLength(user), epcStr); Toast.makeText(context, getString(writeUserState ? R.string.write_success : R.string.write_failed), Toast.LENGTH_SHORT).show(); } @@ -118,38 +116,49 @@ public class WriteUserActivity extends BaseActivity implements DataReturnCall, P map.put("TyreNo", list.get(0).getPropertyContent()); map.put("token", "123456"); Log.e("TAG", "writeUser:" + 2); - OkGo.post(url + "/write") - .upRequestBody(RequestBody.create(JSON, gson.toJson(map))) - .execute(new MyRecultCall(dialog, this) { - @SuppressLint("NotifyDataSetChanged") - @Override - public void onSuccess(Response response) { - super.onSuccess(response); - var body = response.body(); - if (body.getSaveFlag().equals("1")) { - list.clear(); - adapter.notifyDataSetChanged(); - binding.writeEpcCode.setText(null); - binding.writeTire.setText(null); - Toast.makeText(WriteUserActivity.this, getString(R.string.binding_success), Toast.LENGTH_SHORT).show(); - writeUserState=false; - return; - } - Toast.makeText(WriteUserActivity.this, body.getSaveMessage(), Toast.LENGTH_SHORT).show(); - } - }); + OkGo.post(url + "/write").upRequestBody(RequestBody.create(JSON, gson.toJson(map))).execute(new MyRecultCall(dialog, this) { + @SuppressLint("NotifyDataSetChanged") + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + var body = response.body(); + if (body.getSaveFlag().equals("1")) { + list.clear(); + adapter.notifyDataSetChanged(); + binding.writeEpcCode.setText(null); + binding.writeTire.setText(null); + Toast.makeText(WriteUserActivity.this, getString(R.string.binding_success), Toast.LENGTH_SHORT).show(); + writeUserState = false; + return; + } + Toast.makeText(WriteUserActivity.this, body.getSaveMessage(), Toast.LENGTH_SHORT).show(); + } + }); } } - public void writeGoMenu(View view){ - popupMenu.show(); + public String validateDataLength(String data) { + int length = data.length(); + int remainder = length % 4; + + if (remainder != 0) { + int paddingLength = 4 - remainder; + StringBuilder paddedData = new StringBuilder(data); + for (int i = 0; i < paddingLength; i++) { + paddedData.append("0"); + } + return paddedData.toString(); + } + + return data; } + @Override public void readEpcCodeInfo(String info, boolean state, String stateInfo) { if (state) { @@ -161,40 +170,39 @@ public class WriteUserActivity extends BaseActivity implements DataReturnCall, P // Log.e("TAG", "读取状态:" + stateInfo); } - + // 扫码 @Override public void readerCodeInfo(String erCode) { binding.writeTire.setText(erCode); Map map = new HashMap<>(); map.put("TyreNo", erCode); map.put("token", "123456"); - OkGo.post(url + "/readTyreNo").upRequestBody(RequestBody.create(JSON, gson.toJson(map))) - .execute(new MyRecultCall(dialog, this) { - @SuppressLint("NotifyDataSetChanged") - @Override - public void onSuccess(Response response) { - super.onSuccess(response); - var body = response.body(); - if (body.getResultFlag().equals("1")) { - - list = gson.fromJson(body.getJson(), new TypeToken>() { - }.getType()); - list.remove(0); - adapter.setList(list); - adapter.notifyDataSetChanged(); - return; - } - Toast.makeText(WriteUserActivity.this, body.getResultData().toString(), Toast.LENGTH_SHORT).show(); - } - }); + OkGo.post(url + "/readTyreNo").upRequestBody(RequestBody.create(JSON, gson.toJson(map))).execute(new MyRecultCall(dialog, this) { + @SuppressLint("NotifyDataSetChanged") + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + var body = response.body(); + if (body.getResultFlag().equals("1")) { + + list = gson.fromJson(body.getJson(), new TypeToken>() { + }.getType()); + list.remove(0); + adapter.setList(list); + adapter.notifyDataSetChanged(); + return; + } + Toast.makeText(WriteUserActivity.this, body.getResultData().toString(), Toast.LENGTH_SHORT).show(); + } + }); } - + public void writeGoMenu(View view) {popupMenu.show();} @Override public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == R.id.menu_read) { - startActivity(intent1); - }else { + startActivity(intent1); + } else { startActivity(intent2); } diff --git a/app/src/main/java/com/example/jinyu_rfid/base/MyApplication.java b/app/src/main/java/com/example/jinyu_rfid/base/MyApplication.java index 96178be..d4e97f7 100644 --- a/app/src/main/java/com/example/jinyu_rfid/base/MyApplication.java +++ b/app/src/main/java/com/example/jinyu_rfid/base/MyApplication.java @@ -54,7 +54,7 @@ public class MyApplication extends Application { OkGo.getInstance().init(this).setOkHttpClient(builder.build()) // 建议设置OkHttpClient,不设置将使用默认的 .setCacheMode(CacheMode.NO_CACHE) // 全局统一缓存模式,默认不使用缓存,可以不传 .setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE) // 全局统一缓存时间,默认永不过期,可以不传 - .setRetryCount(3); + .setRetryCount(1); } diff --git a/app/src/main/java/com/example/jinyu_rfid/rfid/C5106Device.java b/app/src/main/java/com/example/jinyu_rfid/rfid/C5106Device.java index b2d0051..2e550a7 100644 --- a/app/src/main/java/com/example/jinyu_rfid/rfid/C5106Device.java +++ b/app/src/main/java/com/example/jinyu_rfid/rfid/C5106Device.java @@ -54,9 +54,9 @@ public class C5106Device implements RFIDModel { public boolean writeUser(String writeStr, String tagEpc) { var bytes = Tools.HexString2Bytes(writeStr); var bytesF = Tools.HexString2Bytes(tagEpc); - Reader.READER_ERR readerErr = uhfrManager.writeTagDataByFilter( + Reader.READER_ERR readerErr = uhfrManager.writeTagDataByFilter( (char) 3, 0, bytes, bytes.length, accessBytes, (short) 500, - bytesF ,1,2,true); + bytesF, 1, 2, true); /* Reader.READER_ERR readerErr = uhfrManager.writeTagData( diff --git a/app/src/main/res/layout/activity_app_login.xml b/app/src/main/res/layout/activity_app_login.xml new file mode 100644 index 0000000..a84f887 --- /dev/null +++ b/app/src/main/res/layout/activity_app_login.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +