新大陆实训平台—Android调用RFID.jar包
RFID(2020/10/08)
注意:在F:\Android\RFID\app\src\main\AndroidManifest.xml文件加网络权限
1.EditText设置边框
?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle">
<solid
android:color="#FFF"/>
<corners
android:radius="3dip"/>
<stroke
android:width="0.5px"
android:color="#505050"/>
</shape>
</item>
</layer-list>
2.语音播报
public void tts(String text){
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int i) {
tts.setLanguage(Locale.CHINESE);
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
}
});
}
3.数据存储
存数据
public void keep() {
SharedPreferences.Editor edit = sp.edit();
edit.putString("id",etID.getText().toString().trim());
edit.putString("name",etName.getText().toString().trim());
edit.putString("money",etMoney.getText().toString().trim());
edit.commit();
Toast.makeText(this,"数据写入成功!", Toast.LENGTH_SHORT).show();
}
三张卡号:
E2 00 00 1B 21 11 01 92 06 30 A5 E8
E2 00 00 1B 21 11 01 71 06 30 96 25
E2 00 00 1B 21 11 02 06 06 30 B6 BB
取数据,在init函数中添加
sp = getSharedPreferences("User", Context.MODE_PRIVATE);
//获取上次存储的值,显示出来
etID.setText(sp.getString("id",""));
etName.setText(sp.getString("name",""));
etMoney.setText(sp.getString("money",""));
4.RFID线程
public void RFID(){
rfid = new RFID(DataBusFactory.newSocketDataBus("192.168.1.16", 2005));
Timer timer=new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
rfid.readSingleEpc(new SingleEpcListener() {
@Override
public void onVal(String val) {
Message msg = Message.obtain();
msg.obj = val;
msg.what = 1;
handler.sendMessage(msg);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}, 1000L,1000L);
}
@SuppressLint("HandlerLeak")
Handler handler=new Handler(){
@SuppressLint("WrongConstant")
public void handleMessage(android.os.Message msg) {
String cardid= (String) msg.obj;
Toast.makeText(MainActivity.this, ""+cardid, 0).show();
if(cardid.equals("E2 00 00 1B 21 11 01 71 06 30 96 25")){
tts("24");
etID.setText(cardid);
etName.setText("员工A");
etMoney.setText("24元");
}else if(cardid.equals("E2 00 00 1B 21 11 01 92 06 30 A5 E8")){
tts("30");
etID.setText(cardid);
etName.setText("员工B");
etMoney.setText("30元");
}else if(cardid.equals("E2 00 00 1B 21 11 02 06 06 30 B6 BB")){
tts("27");
etID.setText(cardid);
etName.setText("员工C");
etMoney.setText("27元");
}
keep();
};
};
总代码
package com.example.yzh.rfid;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.speech.tts.TextToSpeech;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Toast;
import com.nle.mylibrary.forUse.rfid.RFID;
import com.nle.mylibrary.forUse.rfid.SingleEpcListener;
import com.nle.mylibrary.transfer.DataBusFactory;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private RFID rfid;
private EditText etID;
private EditText etMoney;
private EditText etName;
private TextToSpeech tts;
private SharedPreferences sp;
@SuppressLint("HandlerLeak")
Handler handler=new Handler(){
@SuppressLint("WrongConstant")
public void handleMessage(android.os.Message msg) {
String cardid= (String) msg.obj;
Toast.makeText(MainActivity.this, ""+cardid, 0).show();
if(cardid.equals("E2 00 00 1B 21 11 01 71 06 30 96 25")){
tts("24");
etID.setText(cardid);
etName.setText("员工A");
etMoney.setText("24元");
}else if(cardid.equals("E2 00 00 1B 21 11 01 92 06 30 A5 E8")){
tts("30");
etID.setText(cardid);
etName.setText("员工B");
etMoney.setText("30元");
}else if(cardid.equals("E2 00 00 1B 21 11 02 06 06 30 B6 BB")){
tts("27");
etID.setText(cardid);
etName.setText("员工C");
etMoney.setText("27元");
}
keep();
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RFID();
init();
}
private void init(){
etID = findViewById(R.id.etID);
etMoney = findViewById(R.id.etMoney);
etName = findViewById(R.id.etName);
sp = getSharedPreferences("User", Context.MODE_PRIVATE);
//获取上次存储的值,显示出来
etID.setText(sp.getString("id",""));
etName.setText(sp.getString("name",""));
etMoney.setText(sp.getString("money",""));
}
public void RFID(){
rfid = new RFID(DataBusFactory.newSocketDataBus("192.168.1.16", 2005));
Timer timer=new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
rfid.readSingleEpc(new SingleEpcListener() {
@Override
public void onVal(String val) {
Message msg = Message.obtain();
msg.obj = val;
msg.what = 1;
handler.sendMessage(msg);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}, 1000L,1000L);
}
public void keep() {
SharedPreferences.Editor edit = sp.edit();
edit.putString("id",etID.getText().toString().trim());
edit.putString("name",etName.getText().toString().trim());
edit.putString("money",etMoney.getText().toString().trim());
edit.commit();
Toast.makeText(this,"数据写入成功!", Toast.LENGTH_SHORT).show();
}
public void tts(final String text){
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int i) {
tts.setLanguage(Locale.CHINESE);
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
}
});
}
@Override
protected void onStop() {
super.onStop();
if (rfid!=null){
rfid.stopConnect();
}
}
}
版权声明:本文为yzh2384581238原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。