flutter 获取android sdk版本号
时间: 2024-12-28 10:34:57 浏览: 24
在 Flutter 中,你可以通过 Android Gradle 插件 (Android.bp) 或者 Dart 的 platform_channel 来获取 Android SDK 版本号。以下是两种常见方法:
**1. 使用 Android Gradle 插件:**
在 `build.gradle` 文件中的 `defaultConfig` 部分查找 `targetSdkVersion` 属性,它的值就是 Android SDK 的版本号。例如:
```groovy
defaultConfig {
// ...
targetSdkVersion 30 // 这里就是 SDK 版本号
}
```
**2. 使用 Dart 的 platform_channel:**
如果你需要在运行时动态获取,可以创建一个 Android 应用模块,并使用 `MethodChannel` 来与 dart 主程打交道。首先,在 Android 库中创建一个 `MainActivity.kt` 并初始化 MethodChannel:
```kotlin
import io.flutter.embedding.android.FlutterActivity
import io.flutter.plugin.common.MethodChannel
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
val methodChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "getSDKVersion")
methodChannel.setMethodCallHandler { call ->
val result = if (call.method == "getSDKVersion") call.result.success(ApplicationInfo.currentApplication().targetSdkVersion.toString()) else call.result.notFound()
}
}
// ...
}
```
然后,在 dart 代码中,通过 `MethodChannel` 调用该方法:
```dart
import 'package:flutter/services.dart';
Future<int> getAndroidSDKVersion() async {
final channel = MethodChannel('getSDKVersion');
try {
return int.parse(await channel.invokeMethod('getSDKVersion'));
} on PlatformException catch (_) {
throw Exception('Failed to fetch Android SDK version.');
}
}
// 使用示例
int sdkVersion = await getAndroidSDKVersion();
print('Current SDK Version: $sdkVersion');
```
阅读全文