新大陆实训平台—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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>