Kar*_*rim 2 android-widget android-jetpack-compose glance glance-appwidget
我最新的想法是使用
updateAppWidgetState(context = context, definition = PreferencesGlanceStateDefinition, glanceId = glanceId) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
和
GlanceWidget().update(context = context, glanceId = glanceId)
Run Code Online (Sandbox Code Playgroud)
但我无权访问glanceId。
问题的背景是我想将 uid 添加到 AppWidgetState,如本问题所述:How to get the AppWidgetId of a Compose Glance widget?
我怎样才能获得glanceId(例如,从我在配置活动中有权访问的appWidgetId)或者我该如何实现这一点?
几个月后我终于解决了自己的问题。一个月前发布的1.0.0-alpha04版本中,出现了一种新getGlanceIdBy方法。
从现有 appWidgetId 获取 GlanceId 或从配置活动获取 Intent 的新方法(Icb70c、b/230391946)
我的代码现在看起来像这样:
// Try block because getGlanceIdBy throws IllegalArgumentException if no GlanceId is found for this appWidgetId.
try {
val glanceAppWidgetManager = GlanceAppWidgetManager(context)
val glanceId: GlanceId = glanceAppWidgetManager.getGlanceIdBy(appWidgetId)
updateAppWidgetState(context = context, glanceId = glanceId) {
it[intPreferencesKey("uid")] = uid
}
val glanceAppWidget: GlanceAppWidget = GlanceWidget()
glanceAppWidget.update(context, glanceId)
} catch (e: IllegalArgumentException) {
Log.d(TAG, "No GlanceId found for this appWidgetId.")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |