У меня есть список внутри виджета. Данные устанавливаются из ответа API. В списке есть 2 кнопки, при нажатии на которые мне нужны данные в классе поставщика виджетов. Ниже приведен код класса поставщика.
val clickIntent = Intent(context, WidgetProvider::class.java).apply {
action = CLICK_ACTION
}
clickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId)
clickIntent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)))
val clickPendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
PendingIntent.getBroadcast(
context, 0, clickIntent, PendingIntent.FLAG_IMMUTABLE
)
} else {
PendingIntent.getBroadcast(
context, 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT
)
}
views.setPendingIntentTemplate(R.id.listview, clickPendingIntent)
Приведенный выше код вызывается внутри метода onUpdate.
Ниже код предназначен для нажатия кнопки элемента списка:
val fillInIntent = Intent()
fillInIntent.setPackage(context.packageName)
fillInIntent.setAction(CLICK_ACTION)
val infos = Bundle()
infos.putString("number", "1234")
fillInIntent.putExtra("data", Gson().toJson(adapterItems[position]))
fillInIntent.putExtras(infos)
views.setOnClickFillInIntent(R.id.ivCall, fillInIntent)
Ниже код предназначен для получения данных внутри onReceive класса Provider
val lead_data = intent.getStringExtra("data")
val bundle = intent.extras
Здесь пакет имеет значение null. Он работает нормально на всех версиях Android, кроме Android 14. Событие получено, но данные пустые.
Ниже приведен код манифеста
Подробнее здесь: https://stackoverflow.com/questions/787 ... android-14