You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中安卓12+设备设置壁纸时应用重启问题求助

解决Flutter在安卓12+设置壁纸时应用重启的问题

问题根源

你使用的wallpaper: ^1.1.0插件版本老旧,未适配安卓12(API 31)及以上的壁纸设置新规范。调用旧API时会触发系统配置变更(比如壁纸变更导致Activity重建),或是权限处理逻辑缺失,最终引发应用重启。

解决方案

1. 替换为适配安卓12+的维护型插件

放弃停止更新的wallpaper插件,改用适配新系统的插件,比如wallpaper_manager_flutter: ^2.0.0(当前维护状态良好)。在pubspec.yaml中更新依赖:

dependencies:
  wallpaper_manager_flutter: ^2.0.0
  permission_handler: ^10.2.0 # 用于权限请求

2. 配置安卓权限

在android/app/src/main/AndroidManifest.xml中添加必要权限,覆盖安卓12+的新要求:

<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<!-- 安卓12+壁纸设置流程依赖的精确闹钟权限 -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

3. 先请求权限再执行壁纸设置

在Flutter代码中,先确保权限已授予,再执行壁纸设置操作,避免权限缺失引发的异常:

import 'package:permission_handler/permission_handler.dart';
import 'package:wallpaper_manager_flutter/wallpaper_manager_flutter.dart';

Future<void> setDeviceWallpaper(String imagePath) async {
  // 请求基础壁纸设置权限
  final wallpaperPermStatus = await Permission.setWallpaper.request();
  if (!wallpaperPermStatus.isGranted) {
    print("壁纸设置权限被拒绝");
    return;
  }

  // 安卓12+额外请求精确闹钟权限
  if (await Permission.scheduleExactAlarm.isDenied) {
    final alarmPermStatus = await Permission.scheduleExactAlarm.request();
    if (!alarmPermStatus.isGranted) {
      print("精确闹钟权限被拒绝,可能影响壁纸设置");
    }
  }

  // 执行壁纸设置
  try {
    final result = await WallpaperManagerFlutter.setWallpaperFromFile(
      filePath: imagePath,
      wallpaperType: WallpaperManagerFlutter.BOTH_SCREENS, // 可选择HOME_SCREEN/LOCK_SCREEN/BOTH_SCREENS
    );
    print("壁纸设置成功: $result");
  } catch (e) {
    print("壁纸设置失败: $e");
  }
}

4. 临时兼容方案(不推荐)

如果暂时无法替换插件,可在安卓AndroidManifest.xml的主Activity中添加配置,避免Activity因系统配置变更重建:

<activity
    android:name=".MainActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
    ...>

注意:这只是临时规避重启,无法解决插件本身的API适配问题,长期来看仍需替换插件

内容的提问来源于stack exchange,提问作者Prashant Vaddoriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:00:34