HarmonyOS 鸿蒙Next NFC tag.getTagInfo(want) 一直等于null
HarmonyOS 鸿蒙Next NFC tag.getTagInfo(want) 一直等于null
onCreate(want, launchParam) {
let AtManager = abilityAccessCtrl.createAtManager();
AtManager.requestPermissionsFromUser(this.context, permissions).then((data) => {
hilog.info(0x0000, 'testTag', '%{public}s', 'request permissions from user success' + data);
}).catch((err) => {
hilog.error(0x0000, 'testTag', 'Failed to request permissions from user. Cause: %{public}s', JSON.stringify(err) ?? '');
});
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
var tagInfo;
var isNDEFTag = false;
var ndefTag;
try {
tagInfo = tag.getTagInfo(want);
if (tagInfo == null || tagInfo == undefined) {
console.log("no TagInfo to be created, ignore it.");
}else {
// get the supported technologies for this found tag.
for (var i = 0; i < tagInfo.technology.length; i++) {
if (tagInfo.technology[i] == tag.NDEF) {
isNDEFTag = true;
}
// also check for technology: tag.NFC_B/NFC_F/NFC_V/NDEF/MIFARE_CLASSIC/MIFARE_ULTRALIGHT/NDEF_FORMATABLE
}
// use NfcA APIs to access the found tag.
if (isNDEFTag) {
try {
ndefTag = tag.getNdef(tagInfo);
} catch (error) {
console.log("tag.getNfcATag catched error: " + error);
}
// other code to read or write this found tag.
if (!ndefTag.isTagConnected()) {
if (!ndefTag.connectTag()) {
console.log("ndefTag connectTag failed.");
} else {
// try {
// ndefTag.readNdef().then((ndefmessage) => {
// console.log("ndef readNdef Promise ndefmessage: " + ndefmessage);
// }).catch((err) => {
// console.log("ndef readNdef Promise err: " + err);
// });
// } catch (busiError) {
// console.log("ndef readNdef Promise catched busiError: " + busiError);
// }
try {
ndefTag.writeNdef(ndefMessage).then(() => {
console.log("ndef writeNdef Promise success.");
}).catch((err)=> {
console.log("ndef writeNdef err: " + err);
});
} catch (busiError) {
console.log("ndef writeNdef Promise catch busiError: " + busiError);
}
}
}
}
}
} catch (error) {
console.log("tag.getTagInfo catched error: " + error);
}
}
更多关于HarmonyOS 鸿蒙Next NFC tag.getTagInfo(want) 一直等于null的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
解决了吗?
更多关于HarmonyOS 鸿蒙Next NFC tag.getTagInfo(want) 一直等于null的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
申明了,这文件就是代码提示吧,我代码已经提示了
您好,请您通过在线提单进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持。
针对您提到的HarmonyOS鸿蒙系统中,使用Next NFC tag的getTagInfo(want)
方法一直返回null的问题,这通常意味着NFC标签的读取请求未能正确匹配到有效的标签信息或权限配置有误。
-
检查NFC权限:确保您的应用已在manifest文件中正确声明了NFC相关权限,如
<uses-permission android:name="android.permission.NFC" />
。 -
确认NFC硬件与标签兼容性:不是所有NFC标签都与所有设备兼容,检查您的设备是否支持读取您所使用的NFC标签类型。
-
审查
want
参数:getTagInfo(want)
方法中的want
参数需精确配置,包括MIME类型、NDEF记录等。确保want
参数正确设置,以匹配您期望读取的NFC标签内容。 -
调试与日志:使用调试工具查看NFC服务的相关日志,以获取更多关于为何
getTagInfo
返回null的线索。 -
系统更新:检查并更新您的鸿蒙系统版本,有时系统更新能解决NFC相关的兼容性问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html