首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从NdefFormatable对象获取Ndef消息

无法从NdefFormatable对象获取Ndef消息
EN

Stack Overflow用户
提问于 2021-06-03 22:18:05
回答 1查看 39关注 0票数 0

下面readData方法的目的是返回NDEF消息,无论标签支持NDEF格式还是"NDEF可格式化“。

代码语言:javascript
复制
class WritableTag (tag: Tag) {
    private val NDEF = Ndef::class.java.canonicalName
    private val NDEF_FORMATABLE = NdefFormatable::class.java.canonicalName

    private val ndef: Ndef?
    private val ndefFormatable: NdefFormatable?

    val tagId: String?
        get() {
            if (ndef != null) {
                return Tools.byteArrayToHex(ndef.tag.id)
            } else if (ndefFormatable != null) {
                return Tools.byteArrayToHex(ndefFormatable.tag.id)
            }
            return null
        }

    init {
        val technologies = tag.techList
        val tagTechs = Arrays.asList(*technologies)
        if (tagTechs.contains(NDEF)) {
            Log.i("WritableTag", "contains ndef")
            ndef = Ndef.get(tag)
            ndefFormatable = null
        } else if (tagTechs.contains(NDEF_FORMATABLE)) {
            Log.i("WritableTag", "contains ndef_formatable")
            ndefFormatable = NdefFormatable.get(tag)
            ndef = null
        } else {
            throw FormatException("Tag doesn't support ndef")
        }
    }

    fun readData(): NdefMessage {
        if (ndef != null) {
            ndef.connect()
            if (ndef.isConnected) {
                return ndef.ndefMessage
            }
        } else if (ndefFormatable != null) {
            ndefFormatable.connect()
            if (ndefFormatable.isConnected) {
                return ndefFormatable.ndefMessage // Unresolved reference: ndefMessage
            }
        }
        throw Exception("Cannot read ndef message")
    }
}

我可以从ndef标记中获取ndefMessage,但不能从ndefFormatable标记中获取。这怎麽可能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-03 23:43:49

由于ndefFormatable标记未处于存储ndefMessage%s的正确状态,因此需要格式化它以存储ndefMessage%s。

不可能从ndefFormatable标签中读取ndefMessage,它基本上是一张空白卡片,表示如果设置为存储ndefMessage,它可以存储它们。

您所能做的就是format它,然后write一个ndefMessage

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67823172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档