左晓为主开发手持机充值管理机
generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt
@@ -78,24 +78,20 @@
     * @param b   书写的块(从0开始数)
     * @param callback 操作结果回调
     */
    fun writeDataAsync(str: ByteArray?, a: Int, b: Int, callback: (Boolean) -> Unit): Disposable {
    fun writeDataAsync(str: ByteArray?, a: Int, b: Int, callback: NFCCallBack): Disposable {
        showLoading()
        val disposable = Observable.fromCallable {
            writeData(str, a, b, object : NFCCallBack {
                override fun isSusses(flag: Boolean, msg: String?) {
                    // 这个回调在IO线程中,不处理UI相关操作
                }
            })
            writeData(str, a, b, callback)
        }
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe({ result ->
            hideLoading()
            callback(result)
            callback.isSusses(result, if (result) "写卡成功" else "写卡失败")
        }, { error ->
            hideLoading()
            error.printStackTrace()
            callback(false)
            callback.isSusses(false, "写卡异常: ${error.message}")
        })
        
        compositeDisposable.add(disposable)
@@ -112,38 +108,14 @@
     */
    fun writeData(str: ByteArray?, a: Int, b: Int, callBack: NFCCallBack): Boolean {
        try {
            return adapter.writeData(str, a, b, false, callBack)
            return adapter.writeData(str, a, b, true, callBack)
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return false
    }
    /**
     * 写卡(异步)
     *
     * @param userCard 用户卡内容
     * @param callback 操作结果回调
     */
    fun writeUserDataAsync(userCard: UserCard, callback: (Boolean) -> Unit): Disposable {
        showLoading()
        val disposable = Observable.fromCallable {
            writeUserData(userCard)
        }
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe({ result ->
            hideLoading()
            callback(result)
        }, { error ->
            hideLoading()
            error.printStackTrace()
            callback(false)
        })
        compositeDisposable.add(disposable)
        return disposable
    }
    /**
     * 写卡(异步)