Browse Source

'2023年3月17日15:38:23'

master
wq 2 years ago
parent
commit
687771c864

+ 88
- 0
app/src/main/java/com/huntersun/vkyes/etcopencard/project/bluetooth/BluetoothWriteCardWriteTab.java View File

@@ -0,0 +1,88 @@
package com.huntersun.vkyes.etcopencard.project.bluetooth;

import android.annotation.SuppressLint;
import android.text.TextUtils;

import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean;

import io.reactivex.Observable;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;

/**
* 蓝牙写卡写签
* 注意调用该内容方法时,要在链接玩蓝牙设备后调用
* @author admin
*/
public class BluetoothWriteCardWriteTab {

/**
* 写卡
*
* @param commands 指令内容
* @return 执行指令返回结果 9000 为成功
*/
public static String writeCard(String commands) {
String[] commands_arry = commands.split(","); //命令排列
String[] results = new String[commands_arry.length]; //结果
int len = results.length;
int split = 0;
for (int i = 0; i < len; i++) {
//透传写卡指令
ServiceStatus resp_string = MethodManager.sendApduICC(commands_arry[i]);
results[i] = resp_string.getServiceInfo();
}
//分隔字符流文件
StringBuilder buffer = new StringBuilder();
for (int i = 0; i < len; i++) {
buffer.append(results[i]);
if (i != len - 1) {
buffer.append(",");
}
}
return buffer.toString();
}

/**
* 透传指令
*
* @param apdu 指令内容
* @param
*/
@SuppressLint("CheckResult")
private void sendApduEsam(String apdu, Callback callback) {
Observable.create((ObservableOnSubscribe<ServiceStatus>) emitter -> {
if (!TextUtils.isEmpty(apdu)) {
emitter.onNext(MethodManager.sendApduEsam(apdu));
emitter.onComplete();
} else {
//APDU为空
callback.fail("APDU返回为空");
}
}).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(ss -> {
if (0 == ss.getServiceCode() && checkApdu(ss)) {
callback.success();
} else {
callback.fail("指令执行错误:" + ss);
}
});
}

//判断指令执行结果
public boolean checkApdu(ServiceStatus resp_string) {
if (null != resp_string) {
if (resp_string.getServiceInfo().length() >= 4) {
return "9000".equals(resp_string.getServiceInfo().substring(resp_string.getServiceInfo().length() - 4));
}
}
return false;
}

interface Callback {
void success();

void fail(String str);
}

}

+ 6
- 4
app/src/main/java/com/huntersun/vkyes/etcopencard/project/ui/fragment/FragmentHomeTow.java View File

@@ -43,7 +43,7 @@ import java.util.List;
public class FragmentHomeTow extends TitleBarFragment<MainActivity> {
private FragmentHomeFiveBinding binding;
private final Object[][] menu = {
{R.mipmap.card1, "卡签查询"},
{R.mipmap.card1, "卡签信息查询"},
{R.mipmap.card2, "发货管理"},
{R.mipmap.card3, "充值圈存"},
{R.mipmap.card4, "卡签注销"},
@@ -51,7 +51,7 @@ public class FragmentHomeTow extends TitleBarFragment<MainActivity> {
{R.mipmap.card6, "卡签挂起"},
{R.mipmap.card7, "满意度评价"},
{R.mipmap.card8, "设备激活"},
{R.mipmap.card9, "储值卡"},
{R.mipmap.card9, "储值卡转记账卡"},
{R.mipmap.card4, "设备注销"},
{R.mipmap.card5, "设备挂失"},
{R.mipmap.card6, "设备挂起"},
@@ -68,8 +68,10 @@ public class FragmentHomeTow extends TitleBarFragment<MainActivity> {
{R.mipmap.card18, "发票管理"},
{R.mipmap.card19, "解除车牌占用"},
{R.mipmap.card20, "圈存退费"},
{R.mipmap.card2, "补卡额"},
{R.mipmap.card2, "补卡额申请"},
{R.mipmap.card3, "卡签版本查询"},
{R.mipmap.card5, "通行流水查询"},
{R.mipmap.card6, "公务车发行"},
};

public static AppFragment<MainActivity> newInstance() {
@@ -169,7 +171,7 @@ public class FragmentHomeTow extends TitleBarFragment<MainActivity> {
case "设备激活":
startActivity(ObuActivationHintActivity.class);
break;
case "储值卡":
case "储值卡转记账卡":
startActivity(ValueToBookkeepingCardActivity.class);
break;
case "更换卡签":

Loading…
Cancel
Save