package com.dayu.general.tool
|
|
import android.app.Activity
|
import android.content.Intent
|
import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper
|
import com.dayu.baselibrary.tools.nfc.NfcReadAdapter
|
|
/**
|
* NFC读取工具类的Kotlin实现
|
*/
|
class NfcReadHelper private constructor(intent: Intent, activity: Activity) : GeBaseHelper(activity) {
|
|
private val adapter: NfcReadAdapter = NfcReadAdapter(intent, activity)
|
|
companion object {
|
private var helper: NfcReadHelper? = null
|
|
/**
|
* 单例初始化
|
*/
|
@JvmStatic
|
fun getInstance(intent: Intent, activity: Activity): NfcReadHelper {
|
if (helper == null) {
|
helper = NfcReadHelper(intent, activity)
|
}
|
return helper!!
|
}
|
}
|
|
|
|
/**
|
* 获取卡号
|
*/
|
fun getCardNumber(): String {
|
return try {
|
adapter.cardNumber
|
} catch (e: Exception) {
|
e.printStackTrace()
|
""
|
}
|
}
|
|
/**
|
* 获取卡片类型和卡号
|
*/
|
fun getCardTypeAndCardNumber(): String {
|
return try {
|
adapter.cradTypeAndCardNumber
|
} catch (e: Exception) {
|
e.printStackTrace()
|
""
|
}
|
}
|
|
/**
|
* 读取NFC卡的全部信息
|
*/
|
fun getAllData(callback: BaseNfcReadHelper.NFCCallMapback) {
|
try {
|
adapter.getAllData(callback)
|
} catch (e: Exception) {
|
e.printStackTrace()
|
}
|
}
|
|
/**
|
* 获取一个扇区的数据
|
*/
|
fun getOneSectorData(): List<ByteArray>? {
|
return try {
|
adapter.onesectorData
|
} catch (e: Exception) {
|
e.printStackTrace()
|
null
|
}
|
}
|
|
/**
|
* 读取NFC卡的特定扇区信息
|
*/
|
fun getData(a: Int, b: Int, callback: BaseNfcReadHelper.NFCCallByteback) {
|
try {
|
adapter.getData(a, b, callback)
|
} catch (e: Exception) {
|
e.printStackTrace()
|
}
|
}
|
|
|
}
|