增加qq音乐写入

This commit is contained in:
2025-07-16 09:54:24 +08:00
parent 679e42cbf6
commit ea3a446768
6 changed files with 114 additions and 2 deletions

View File

@@ -0,0 +1,26 @@
package com.ttstd.elderlyassistant.activity.third_party;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.ttstd.elderlyassistant.R;
public class NfcQQMusicActivity extends AppCompatActivity {
private static final String TAG = "NfcQQMusicActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nfc_qq_music);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.e(TAG, "onNewIntent: "+intent.getAction() );
}
}

View File

@@ -149,8 +149,27 @@ public class WriteMessageActivity extends AppCompatActivity {
Toaster.showLong("请输入电话");
return;
}
WriteMessageUtils.writePhoneToTag(mTag, editable.toString());
String phone = editable.toString();
if (!phone.startsWith("+86"))
phone = "+86" + phone;
WriteMessageUtils.writePhoneToTag(mTag, phone);
}
}
public void writeQqMusic(View view) {
if (mTag == null) {
Toaster.showLong("NFC卡片未连接");
return;
}
WriteMessageUtils.writeUrlToTag(mTag, "qqmusic://qq.com/media/playSonglist?p={\"song\":[{\"songmid\":\"003Hr2m138zmPR\"}]}");
}
public void writeQqMusicForIos(View view) {
if (mTag == null) {
Toaster.showLong("NFC卡片未连接");
return;
}
WriteMessageUtils.writeUrlToTagIos(mTag, "qqmusic://qq.com/media/playSonglist?p={\"song\":[{\"songmid\":\"003aAPj81VWrbL\"}]}","com.tencent.qqmusic");
}
}
}

View File

@@ -6,10 +6,15 @@ import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.Tag;
import android.nfc.tech.Ndef;
import android.util.Log;
import com.hjq.toast.Toaster;
import java.io.IOException;
public class WriteMessageUtils {
private static final String TAG = "WriteMessageUtils";
public static void writePhoneToTag(Tag tag, String phoneNumber) {
// 构建tel:协议的URI
Uri uri = Uri.parse("tel:" + phoneNumber);
@@ -22,6 +27,7 @@ public class WriteMessageUtils {
ndef.connect();
ndef.writeNdefMessage(message); // 写入NDEF消息
ndef.close();
Toaster.show("写入联系人成功");
} catch (IOException | FormatException e) {
e.printStackTrace();
}
@@ -38,8 +44,31 @@ public class WriteMessageUtils {
ndef.connect();
ndef.writeNdefMessage(message);
ndef.close();
Toaster.show("写入Url成功");
} catch (IOException | FormatException e) {
e.printStackTrace();
}
}
public static void writeUrlToTagIos(Tag tag, String url, String pkg) {
// 1. 创建HTTP RecordHTTPS链接
Uri uri = Uri.parse(url);
NdefRecord httpRecord = NdefRecord.createUri(uri);
// 2. 创建Android应用包名Record
NdefRecord androidRecord = NdefRecord.createApplicationRecord(pkg);
// 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());
}
}
}