要检查小部件是否放置在屏幕上,我使用此功能
override suspend fun checkWidgetsOnScreen(): Boolean =
withContext(defaultDispatcher) {
val glanceId = GlanceAppWidgetManager(applicationContext).getGlanceIds(SubscriptionsWidget::class.java).lastOrNull()
return@withContext (glanceId != null)
}
但有些情况下系统根本不支持小部件,例如在 Android Go 上。当系统不支持时,我不想建议用户将小部件放置在屏幕上。
我该如何检查?
android.software.app_widgets
功能指示设备是否支持应用程序小部件,例如由 Glance 创建的小部件。您可以 使用 hasSystemFeature()
查看设备是否支持该功能:
context.packageManager.hasSystemFeature(PackageManager.FEATURE_APP_WIDGETS)
如果设备支持应用程序小部件,该片段将返回
true
,否则返回 false
。
如果您的应用程序由应用程序小部件主导,因此您只想将应用程序安装在支持应用程序小部件的设备上,您也可以将其添加到您的清单中:
<uses-feature android:name="android.software.app_widgets" android:required="true" />