最近安装后,Android requestPinAppWidget返回false

时间:2019-06-03 17:27:33

标签: android android-widget samsung-mobile android-8.0-oreo

我遇到AppWidgetManager::requestPinAppWidget

的问题

有时方法requestPinAppWidget返回false。我们通过卸载应用程序并使用android studio从头重新安装来重现它。我们可以使用以下代码在Samsung和Pixel设备上一致地重现它:

@RequiresApi(Build.VERSION_CODES.O)
private fun showWidgetAddingActivity(context: Context) {
    val appWidgetManager = context.applicationContext.getSystemService(AppWidgetManager::class.java)
    val myProvider = ComponentName(context.applicationContext, WidgetActionsReceiver::class.java)

    val launcherSupported = appWidgetManager.requestPinAppWidget(myProvider,null, null)
}

如果我们在全新安装后(或之后几分钟内)运行launcherSupported,则其值为false。在任何其他情况下均为true

在发生这种情况时,调用appWidgetManager.isRequestPinAppWidgetSupported始终返回true。

那是为什么?我该如何缓解呢?或者至少至少事先知道,所以我不会向用户显示其余流程

1 个答案:

答案 0 :(得分:0)

这是由于WidgetActionsReceiver在默认情况下被禁用引起的。使用功能标记启用该功能后,更改需要花费一些时间才能到达启动器。