diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e397fbf..f8965cf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,7 @@ android:roundIcon="@mipmap/logo" android:supportsRtl="true" android:theme="@style/Theme.BGSRFIDTrack" + android:usesCleartextTraffic="true" tools:targetApi="31"> (); adapter = new GoodsInfoAdapter(this, this); adapter.setList(codeList); @@ -56,7 +61,7 @@ public class BindingActivity extends BaseActivity implements MyKeyInfoCall, Adap public void sanCodeCall(String code) { Log.e("TAG", "广播:" + code); model.setBarCode(code); - // if (codeList.contains(code)) return; + if (codeList.contains(code)) return; codeList.add(code); adapter.notifyDataSetChanged(); } @@ -65,21 +70,33 @@ public class BindingActivity extends BaseActivity implements MyKeyInfoCall, Adap @Override public void onkeyDown() { Log.e("TAG", "点击"); - var tagModels = uhfReader.inventoryRealTime(); - if (tagModels == null || tagModels.isEmpty()) { - // Toast.makeText(context, "读取失败", Toast.LENGTH_SHORT).show(); - return; - } - music.start(); - var bytes = tagModels.get(0).getmEpcBytes(); - var epc = ASCIIUtil.hex2Str(Tools.Bytes2HexString(bytes, bytes.length)); - Log.e("TAG", "onkeyDown:" + epc); + super.readEPC(); + } + + @Override + public void sanEpcCall(String epc) { + super.sanEpcCall(epc); model.setEpc(epc); } // 提交 public void bindingSubmit(View view) { - + model.setWatBills(codeList); + OkGo.post("http://"+ SharedPreferencesUtils.getstring("ip","")+ + "/api/bindingSubmit") + .upRequestBody(RequestBody.create(JSON, gson.toJson(model))) + .execute(new MyRecultCall(dialog,this){ + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + if (response.body().getCode()==0){ + Toast.makeText(BindingActivity.this, "请求成功", Toast.LENGTH_SHORT).show(); + finish(); + return; + } + Toast.makeText(BindingActivity.this, response.body().getMsg(), Toast.LENGTH_SHORT).show(); + } + }); } @Override diff --git a/app/src/main/java/com/example/bgsrfidtrack/HomePageActivity.java b/app/src/main/java/com/example/bgsrfidtrack/HomePageActivity.java index ed47424..e1c25a3 100644 --- a/app/src/main/java/com/example/bgsrfidtrack/HomePageActivity.java +++ b/app/src/main/java/com/example/bgsrfidtrack/HomePageActivity.java @@ -18,9 +18,13 @@ public class HomePageActivity extends BaseActivity { super.onCreate(savedInstanceState); ActivityHomePageBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_home_page); Intent intent = new Intent(this, BindingActivity.class); + Intent intent2 = new Intent(this, UnBindingActivity.class); binding.binding.setOnClickListener(v -> { startActivity(intent); }); + binding.unBinding.setOnClickListener(v -> { + startActivity(intent2); + }); } @@ -29,7 +33,7 @@ public class HomePageActivity extends BaseActivity { @Override protected void onDestroy() { super.onDestroy(); - if(uhfReader!=null){ + if (uhfReader != null) { uhfReader.close(); } } diff --git a/app/src/main/java/com/example/bgsrfidtrack/MainActivity.java b/app/src/main/java/com/example/bgsrfidtrack/MainActivity.java index 5e3324f..07e571c 100644 --- a/app/src/main/java/com/example/bgsrfidtrack/MainActivity.java +++ b/app/src/main/java/com/example/bgsrfidtrack/MainActivity.java @@ -31,35 +31,38 @@ public class MainActivity extends BaseActivity { if (isRemember) { login.setUsername(SharedPreferencesUtils.getstring("user", "")); login.setPassword(SharedPreferencesUtils.getstring("pass", "")); + login.setIp(SharedPreferencesUtils.getstring("ip", "")); login.setRemember(isRemember); } binding.setUser(login); } + public void login_click(View view) { - // String pass = login.getPassword(); - // String name = login.getUsername(); - // if (pass == null || name == null || pass.isEmpty() || name.isEmpty()) return; - // OkGo.post(url+"/auth/pdaLogin") - // .upRequestBody(RequestBody.create(JSON, gson.toJson(login))) - // .execute(new MyRecultCall(dialog, this) { - // @Override - // public void onSuccess(Response response) { - // super.onSuccess(response); - // var body = response.body(); - // if (body.getCode() == 200) { - // boolean remember = login.isRemember(); - // if (remember) { - // SharedPreferencesUtils.putboolean("isRemember", remember); - // SharedPreferencesUtils.putstring("user", name); - // SharedPreferencesUtils.putstring("pass", pass); - // } - Intent intent=new Intent(MainActivity.this, HomePageActivity.class); - startActivity(intent); - finish(); - // } - // - // - // } - // }); + String pass = login.getPassword(); + String name = login.getUsername(); + if (pass == null || name == null || pass.isEmpty() || name.isEmpty()) return; + var ip = login.getIp(); + OkGo.post("http://"+ ip + "/api/login/finduser") + .params("name",name) + .params("pass",pass) + .execute(new MyRecultCall(dialog, this) { + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + var body = response.body(); + if (body.getCode() == 0) { + boolean remember = login.isRemember(); + if (remember) { + SharedPreferencesUtils.putboolean("isRemember", remember); + SharedPreferencesUtils.putstring("user", name); + SharedPreferencesUtils.putstring("pass", pass); + SharedPreferencesUtils.putstring("ip", ip); + } + Intent intent = new Intent(MainActivity.this, HomePageActivity.class); + startActivity(intent); + finish(); + } + } + }); } } \ No newline at end of file diff --git a/app/src/main/java/com/example/bgsrfidtrack/UnBindingActivity.java b/app/src/main/java/com/example/bgsrfidtrack/UnBindingActivity.java index 6bb1b21..12a4ec6 100644 --- a/app/src/main/java/com/example/bgsrfidtrack/UnBindingActivity.java +++ b/app/src/main/java/com/example/bgsrfidtrack/UnBindingActivity.java @@ -1,14 +1,43 @@ package com.example.bgsrfidtrack; import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; import android.os.Bundle; +import android.util.Log; +import android.view.View; -public class UnBindingActivity extends AppCompatActivity { +import com.example.bgsrfidtrack.adapter.UnBindingGoodsInfoAdapter; +import com.example.bgsrfidtrack.base.BaseActivity; +import com.example.bgsrfidtrack.databinding.ActivityUnBindingBinding; +import com.example.bgsrfidtrack.receiver.MyKeyInfoCall; +import com.example.bgsrfidtrack.uitls.ASCIIUtil; +import cn.pda.serialport.Tools; + +public class UnBindingActivity extends BaseActivity implements MyKeyInfoCall { + private UnBindingGoodsInfoAdapter adapter; + private ActivityUnBindingBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_un_binding); + binding = DataBindingUtil.setContentView(this, R.layout.activity_un_binding); + initRFID(); + initKeyRecriver(this); + } + + public void unBindingSubmit(View view) { + + } + // 扫描RFID + @Override + public void onkeyDown() { + readEPC(); + } + + @Override + public void sanEpcCall(String epc) { + super.sanEpcCall(epc); + binding.unbindingEpc.setText(epc); } } \ No newline at end of file diff --git a/app/src/main/java/com/example/bgsrfidtrack/adapter/UnBindingGoodsInfoAdapter.java b/app/src/main/java/com/example/bgsrfidtrack/adapter/UnBindingGoodsInfoAdapter.java new file mode 100644 index 0000000..d732f2b --- /dev/null +++ b/app/src/main/java/com/example/bgsrfidtrack/adapter/UnBindingGoodsInfoAdapter.java @@ -0,0 +1,68 @@ +package com.example.bgsrfidtrack.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.bgsrfidtrack.R; +import com.example.bgsrfidtrack.databinding.ItemGoodsInfo2Binding; +import com.example.bgsrfidtrack.databinding.ItemGoodsInfoBinding; + +import java.util.List; + +/** + * @author wanghao + * @date 2024/7/10 15:30 + */ +public class UnBindingGoodsInfoAdapter extends RecyclerView.Adapter { + private Context context; + private List list; + private LayoutInflater inflater; + private AdapterClickCall call; + + public UnBindingGoodsInfoAdapter(Context context, AdapterClickCall call) { + this.context = context; + this.call = call; + inflater = LayoutInflater.from(context); + } + + public void setList(List list) { + this.list = list; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + ItemGoodsInfo2Binding binding = DataBindingUtil.inflate(inflater, R.layout.item_goods_info2, parent, false); + return new MyViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + var binding = holder.binding; + binding.itemCode.setText(list.get(position)); + binding.itemIndex.setText(position+1+""); + binding.itemDelete.setOnClickListener(v -> call.deleteItem(position)); + + } + + @Override + public int getItemCount() { + return list.isEmpty() ? 0 : list.size(); + } + + static class MyViewHolder extends RecyclerView.ViewHolder { + private ItemGoodsInfo2Binding binding; + + public MyViewHolder(ItemGoodsInfo2Binding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } +} diff --git a/app/src/main/java/com/example/bgsrfidtrack/base/BaseActivity.java b/app/src/main/java/com/example/bgsrfidtrack/base/BaseActivity.java index ff6c1ee..499359c 100644 --- a/app/src/main/java/com/example/bgsrfidtrack/base/BaseActivity.java +++ b/app/src/main/java/com/example/bgsrfidtrack/base/BaseActivity.java @@ -28,6 +28,7 @@ import com.android.hdhe.uhf.reader.UhfReader; import com.example.bgsrfidtrack.R; import com.example.bgsrfidtrack.receiver.MyKeyInfoCall; import com.example.bgsrfidtrack.receiver.MyKeyReceiver; +import com.example.bgsrfidtrack.uitls.ASCIIUtil; import com.google.gson.Gson; import java.io.ByteArrayOutputStream; @@ -56,22 +57,26 @@ public class BaseActivity extends AppCompatActivity { public SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss"); public MyApplication application; public UhfReader uhfReader; - public MediaPlayer music; + public MediaPlayer music; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("TAG", this.getLocalClassName()); gson = new Gson(); this.context = this; - music=MediaPlayer.create(this, R.raw.msg); + initDialog(); initSan(); } - public void initRFID(){ - application=MyApplication.getApplication(); - uhfReader=application.getUhfReader(); + + public void initRFID() { + application = MyApplication.getApplication(); + uhfReader = application.getUhfReader(); + music = MediaPlayer.create(this, R.raw.msg); } + public class MyReceiver extends BroadcastReceiver { @Override @@ -99,7 +104,7 @@ public class BaseActivity extends AppCompatActivity { public void initKeyRecriver(MyKeyInfoCall call) { - keyReceiver=new MyKeyReceiver(call); + keyReceiver = new MyKeyReceiver(call); IntentFilter filter = new IntentFilter(); filter.addAction("android.rfid.FUN_KEY"); filter.addAction("android.intent.action.FUN_KEY"); @@ -121,6 +126,22 @@ public class BaseActivity extends AppCompatActivity { } + public void sanEpcCall(String epc) { + + } + + protected void readEPC() { + var tagModels = uhfReader.inventoryRealTime(); + if (tagModels == null || tagModels.isEmpty()) { + // Toast.makeText(context, "读取失败", Toast.LENGTH_SHORT).show(); + return; + } + music.start(); + var bytes = tagModels.get(0).getmEpcBytes(); + var epc = ASCIIUtil.hex2Str(Tools.Bytes2HexString(bytes, bytes.length)); + Log.e("TAG", "onkeyDown:" + epc); + sanEpcCall(epc); + } // 拍照 /* private Uri img_uri; private File outputImage; diff --git a/app/src/main/java/com/example/bgsrfidtrack/model/BindingModel.java b/app/src/main/java/com/example/bgsrfidtrack/model/BindingModel.java index 5fe0706..985b0f1 100644 --- a/app/src/main/java/com/example/bgsrfidtrack/model/BindingModel.java +++ b/app/src/main/java/com/example/bgsrfidtrack/model/BindingModel.java @@ -2,6 +2,8 @@ package com.example.bgsrfidtrack.model; import androidx.databinding.BaseObservable; +import java.util.List; + /** * @author wanghao * @date 2024/7/10 15:12 @@ -12,7 +14,15 @@ public class BindingModel extends BaseObservable { private String localtion; private String number; private String weight; + private List watBills; + + public List getWatBills() { + return watBills; + } + public void setWatBills(List watBills) { + this.watBills = watBills; + } public String getLocaltion() { return localtion; diff --git a/app/src/main/java/com/example/bgsrfidtrack/model/LoginModel.java b/app/src/main/java/com/example/bgsrfidtrack/model/LoginModel.java index 020c91a..a6e47bb 100644 --- a/app/src/main/java/com/example/bgsrfidtrack/model/LoginModel.java +++ b/app/src/main/java/com/example/bgsrfidtrack/model/LoginModel.java @@ -7,10 +7,20 @@ import androidx.databinding.BaseObservable; * @date 2023/12/21 14:00 */ public class LoginModel extends BaseObservable { + private String ip; private String username; private String password; private boolean remember; + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + notifyChange(); + } + public String getUsername() { return username; } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 57d505c..3c9d49f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,16 +4,17 @@ xmlns:tools="http://schemas.android.com/tools"> - + + + + + + + + @@ -54,7 +73,7 @@ android:layout_width="match_parent" android:layout_height="55dp" android:layout_marginLeft="20dp" - android:layout_marginTop="15dp" + android:layout_marginTop="10dp" android:layout_marginRight="20dp" android:hint="密码" app:passwordToggleEnabled="true"> diff --git a/app/src/main/res/layout/activity_un_binding.xml b/app/src/main/res/layout/activity_un_binding.xml index 00821ec..599d0ee 100644 --- a/app/src/main/res/layout/activity_un_binding.xml +++ b/app/src/main/res/layout/activity_un_binding.xml @@ -1,10 +1,115 @@ - + xmlns:tools="http://schemas.android.com/tools"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +