android 从主屏幕中删除Glance小部件

hyrbngr7  于 2023-05-05  发布在  Android
关注(0)|答案(2)|浏览(261)

我想从主屏幕删除我的小部件(一瞥Jetpack),但不成功。我的代码是:

val scope = CoroutineScope(Dispatchers.Default)

scope.launch {
  val glanceId =GlanceAppWidgetManager(context).getGlanceIds(ActionWidget::class.java)
                                    .last()
val glanceAppWidget: GlanceAppWidget = ActionWidget()
glanceAppWidget.onDelete(context, glanceId)
}
e3bfsja2

e3bfsja21#

不可能通过编程删除小部件。您只是手动调用回调。除非应用从Android清单中删除小部件,否则必须由用户手动删除小部件。
你可以在你的widget provider中设置android:enabled=false,一旦应用程序更新,它就应该删除widget。

iswrvxsc

iswrvxsc2#

非常感谢Marcel!我按照他的建议解决了这个问题!我的代码是:

val receiver = ComponentName(context, ActionWidgetReceiver::class.java)

val pm = context.packageManager

pm.setComponentEnabledSetting(
      receiver,
      PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
      PackageManager.DONT_KILL_APP)

相关问题