通知中心封面图显示

部分界面的信息更新
缓存系统初步引入
即将进入播放列表更新
This commit is contained in:
2026-08-25 23:09:17 +08:00
parent 0e8921742c
commit f2b4d1f46d
16 changed files with 454 additions and 161 deletions
@@ -3,9 +3,50 @@ package com.lxh.qingting_player
import android.os.Build
import android.os.Bundle
import android.util.Log
import com.ryanheise.audioservice.AudioServiceActivity // ⭐ 改用这个
import androidx.core.content.FileProvider
import com.ryanheise.audioservice.AudioServiceActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import java.io.File
class MainActivity : AudioServiceActivity() { // ⭐ 继承 AudioServiceActivity
class MainActivity : AudioServiceActivity() {
private val CHANNEL = "com.lxh.qingting_player/file_provider"
// ⭐ 关键:注册 MethodChannel
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
.setMethodCallHandler { call, result ->
if (call.method == "getContentUri") {
val path = call.argument<String>("path")
if (path != null && path.isNotEmpty()) {
try {
val file = File(path)
if (!file.exists()) {
result.error("FILE_NOT_FOUND", "File does not exist: $path", null)
return@setMethodCallHandler
}
val uri = FileProvider.getUriForFile(
this,
"${packageName}.fileprovider",
file
)
Log.d("QTPlayer", "📢 [FileProvider] content URI: $uri")
result.success(uri.toString())
} catch (e: Exception) {
Log.e("QTPlayer", "❌ [FileProvider] error: ${e.message}")
result.error("ERROR", e.message, null)
}
} else {
result.error("INVALID_PATH", "path is null or empty", null)
}
} else {
result.notImplemented()
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)