I have a watch face for Wear OS that I built several years ago. Recently, users have been complaining of crashes on the Galaxy Watch 4. I picked one up and found that Complication icons aren't properly loading on it. Calling complicationData.getIcon()
returns an Icon, but calling loadDrawable()
on that produces a null value. There must be a way to get Complication icons still? Plenty of watch faces have them.
Asked
Active
Viewed 141 times
1

rjr-apps
- 352
- 4
- 13
1 Answers
2
Turns out, the issue at hand is Google's restrictions on package visibility in Android 11+. The fix is to declare <queries>
in your manifest based on the ACTION_COMPLICATION_UPDATE_REQUEST
intent filter:
<queries>
<intent>
<action android:name="android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST" />
</intent>
</queries>

rjr-apps
- 352
- 4
- 13
-
2The [wear watchface library](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:wear/watchface/watchface/src/main/AndroidManifest.xml;l=22) already includes this line for you. Are you not using the latest version of Wear Watchface? – ianhanniballake Aug 10 '22 at 05:22
-
@ianhanniballake no, I built the watchface five years ago now. Am considering doing a full rewrite one of these days, though. – rjr-apps Aug 16 '22 at 19:30