优化通过scheme直接拨号和视频,增加数据加密。优化ContactInfo数据结构。优化无障碍流程

This commit is contained in:
2025-07-18 01:46:16 +08:00
parent ea3a446768
commit f242a915bc
13 changed files with 760 additions and 225 deletions

View File

@@ -15,60 +15,45 @@ import java.io.IOException;
public class WriteMessageUtils {
private static final String TAG = "WriteMessageUtils";
public static void writePhoneToTag(Tag tag, String phoneNumber) {
public static void writePhoneToTag(Tag tag, String phoneNumber) throws Exception {
// 构建tel:协议的URI
Uri uri = Uri.parse("tel:" + phoneNumber);
// 创建URI类型的NdefRecord
NdefRecord uriRecord = NdefRecord.createUri(uri);
NdefMessage message = new NdefMessage(new NdefRecord[]{uriRecord});
try {
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(message); // 写入NDEF消息
ndef.close();
Toaster.show("写入联系人成功");
} catch (IOException | FormatException e) {
e.printStackTrace();
}
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(message); // 写入NDEF消息
ndef.close();
}
public static void writeUrlToTag(Tag tag, String url) {
public static void writeUrlToTag(Tag tag, String url) throws Exception {
// 确保URL包含协议如http://
Uri uri = Uri.parse(url);
NdefRecord uriRecord = NdefRecord.createUri(uri);
NdefMessage message = new NdefMessage(new NdefRecord[]{uriRecord});
try {
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(message);
ndef.close();
Toaster.show("写入Url成功");
} catch (IOException | FormatException e) {
e.printStackTrace();
}
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(message);
ndef.close();
}
public static void writeUrlToTagIos(Tag tag, String url, String pkg) {
public static void writeUrlAddPackage(Tag tag, String url, String pkg) throws Exception {
Log.e(TAG, "writeUrlAddPackage: url = " + url);
String fixedUrl = url.replace("+", "%2B"); // 替换 + 为 %2B
// 1. 创建HTTP RecordHTTPS链接
Uri uri = Uri.parse(url);
Uri uri = Uri.parse(fixedUrl);
NdefRecord httpRecord = NdefRecord.createUri(uri);
// 2. 创建Android应用包名Record
// 2. 创建Android应用包名Record
NdefRecord androidRecord = NdefRecord.createApplicationRecord(pkg);
// 3. 按顺序组合记录
// 3. 按顺序组合记录
NdefMessage message = new NdefMessage(new NdefRecord[]{httpRecord, androidRecord});
// 4. 写入NFC标签
try {
Ndef ndef = Ndef.get(tag); // 获取标签对象
ndef.connect();
ndef.writeNdefMessage(message);
} catch (Exception e) {
Log.e(TAG, "writeUrlToTagIos: " + e.getMessage());
}
// 4. 写入NFC标签
Ndef ndef = Ndef.get(tag); // 获取标签对象
ndef.connect();
ndef.writeNdefMessage(message);
}
}