My app widgets stopped updating after updating compileSdk and targetSdkVersion to 35. AppWidgetProvider method onUpdate is not called. I was searching for android 15 changes that could cause this but found none. When I put back targetSdkVersion 34 it updates on phones and emulators with android 14 but not on android 15. With both compileSdk and targetSdkVersion 34 it works fine.
abstract class BaseWidgetProvider : AppWidgetProvider(), KoinComponent {
companion object {
const val WIDGET_NAME = "widget_name"
}
abstract fun getWidgetInfo(): Bundle
override fun onEnabled(context: Context?) {
super.onEnabled(context)
logFirebaseEvent(context!!, WIDGET_ADDED, getWidgetInfo())
}
override fun onDisabled(context: Context?) {
super.onDisabled(context)
logFirebaseEvent(context!!, WIDGET_REMOVED, getWidgetInfo())
}
override fun onUpdate(
context: Context, appWidgetManager: AppWidgetManager,
appWidgetIds: IntArray
) {
Log.e("EEE", "onUpdate")
updateWidgets(context)
}
}
This is my provider
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget_original_layout"
android:configure="com.packagename.widget.WidgetSettingsActivity"
android:minHeight="52dp"
android:minWidth="160dp"
android:resizeMode="horizontal|vertical"
android:previewImage="@drawable/original_widget_preview"
android:updatePeriodMillis="1800000" >
</appwidget-provider>
Of course it is declared in Manifest
<receiver
android:name=".SunWidgetProvider"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.DATE_CHANGED" />
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/original_widget" />
</receiver>
<receiver
android:name=".SunWidgetProvider"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:exported="true">-------change here false to true