diff --git a/android/app/src/main/kotlin/com/example/PiliPlus/MainActivity.kt b/android/app/src/main/kotlin/com/example/PiliPlus/MainActivity.kt index 13b17d069..7d5fc53f1 100644 --- a/android/app/src/main/kotlin/com/example/PiliPlus/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/PiliPlus/MainActivity.kt @@ -7,8 +7,10 @@ import com.ryanheise.audioservice.AudioServiceActivity import android.content.ComponentName import android.content.Intent import android.content.res.Configuration +import android.net.Uri import android.os.Build import android.os.Bundle +import android.provider.Settings import android.view.WindowManager.LayoutParams import kotlin.system.exitProcess @@ -55,6 +57,22 @@ class MainActivity : AudioServiceActivity() { } startActivity(intent) } catch (e: Exception) {} + } else if (call.method == "linkVerifySettings") { + try { + val intent = Intent(android.provider.Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS, + Uri.parse("package:" + context.packageName)) + context.startActivity(intent) + } catch (t: Throwable) { + try { + val intent = Intent("android.intent.action.MAIN", Uri.parse("package:" + context.packageName)) + intent.setClassName("com.android.settings", "com.android.settings.applications.InstalledAppOpenByDefaultActivity") + context.startActivity(intent) + } catch (t2: Throwable) { + val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, + Uri.parse("package:" + context.packageName)) + context.startActivity(intent) + } + } } else { result.notImplemented() } diff --git a/lib/pages/about/index.dart b/lib/pages/about/index.dart index 105b761ec..fff5dbe0d 100644 --- a/lib/pages/about/index.dart +++ b/lib/pages/about/index.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'package:PiliPlus/build_config.dart'; import 'package:PiliPlus/services/loggeer.dart'; @@ -8,6 +9,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:PiliPlus/models/github/latest.dart'; import 'package:PiliPlus/utils/storage.dart'; @@ -186,6 +188,19 @@ Commit Hash: ${BuildConfig.commitHash}''', style: subTitleStyle, ), ), + if (Platform.isAndroid) + ListTile( + onTap: () { + Utils.channel.invokeMethod('linkVerifySettings'); + }, + leading: Icon(MdiIcons.linkBoxOutline), + title: const Text('打开受支持的链接'), + trailing: Icon( + Icons.arrow_forward, + size: 16, + color: outline, + ), + ), ListTile( onTap: () { showDialog(