Android 项目中的小需求

1.硬件扫描二维码登录

参考Android 无 EditText 情况下接受扫码枪扫描数据

需求:硬件设备有二维码读取器,我们展示二维码,可以根据二维码信息,进行下一步操作

因为现有扫码设备,在扫码后就会在输入框(EditText)显示正确的扫码信息

选择方案:不使用EditText

class MainActivity : AppCompatActivity() {

    var barcode = ""
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun dispatchKeyEvent(event: KeyEvent?): Boolean {

        if (event?.action == KeyEvent.ACTION_DOWN) {
            val pressedKey = event.unicodeChar.toChar()
            //会输出单个的字符
            barcode += pressedKey
        }
        if (event?.action == KeyEvent.ACTION_DOWN && event.keyCode == KeyEvent.KEYCODE_ENTER) {
            Toast.makeText(this, "barcode=$barcode", Toast.LENGTH_LONG).show()
            //TODO 全部输入完成 进行后续操作
            barcode =""
        }
        return super.dispatchKeyEvent(event)
    }
}

注意:

1.在使用时需要使用.trim()去空,以免遇到问题

2.扫码会触发点击事件,需注意

2.实现连续点击

参考文章
https://www.cnblogs.com/tangZH/p/9832171.html

object MultipleClickUtils {
    private const val counts = 4
    private const val duration = 3 * 1000L
    private val mHits = LongArray(counts)

    fun checkMultipleClick(onFinish: () -> Unit) {
        System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1)
        mHits[mHits.size - 1] = SystemClock.uptimeMillis()
        if (mHits[0] >= SystemClock.uptimeMillis() - duration) {
            //完成连续counts点击
            onFinish()
        }
    }
}

arraycopy的方法理解


Android 项目中的小需求_第1张图片
arraycopy

你可能感兴趣的:(Android 项目中的小需求)