我正在为 Androi Wear OS 应用程序使用 AmbientModeSupport:https://developer.android.com/training/wearables/overlays/always-on
刚刚完成实施/测试,一切都按预期进行。 应用程序发布后,我注意到从 Google Play 下载应用程序时该功能无法正常工作。
我做了一些额外的测试并且:
在释放模式下,屏幕只是降低亮度,但 UI 上没有任何变化(在 onEnterAmbient 中执行的更改)。 AndroidManifest 中已经提供了 WAKE_LOCK 权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
有什么想法吗?
更新: 在我认为我完全没有想法之后,我意识到我的 build.gradle 对于发布模式有 2 个额外的东西,proguard 和 minify 标志:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
看来是 minifyEnabled 导致了这个问题。我不知道为什么会发生这种行为,但如果我删除 minifyEnabled 标志,环境模式就会起作用。
我在 Flutter 应用程序中遇到了同样的问题,并且我的 build.gradle 文件没有明确将
minifyEnabled
设置为 true,但这是发布模式下的默认设置。
对于 flutter,您还需要将 shrinkResources
设置为 false(因为在发布模式下它也默认设置为 true)。
(
android\app\build.grade
内):
buildTypes {
release {
minifyEnabled false <<< add these
shrinkResources false <<< lines
}
}
一旦我这样做了,环境模式支持也可以在发布模式下工作。