是否可以找出Android小部件是否放置在锁定屏幕或主屏幕上? 我想象它在广播提供商的某个地方,所以我可以了解用户如何在4.2 +上使用它。
答案 0 :(得分:5)
以下是documentation的相关摘要:
“您可以通过调用getAppWidgetOptions()
来检测您的小部件是否在键盘锁(锁屏)或主屏幕上,以将小部件的选项作为捆绑包。
返回的包将包含密钥OPTION_APPWIDGET_HOST_CATEGORY
,其值为WIDGET_CATEGORY_HOME_SCREEN
或WIDGET_CATEGORY_KEYGUARD
之一。 “
AppWidgetManager appWidgetManager;
int widgetId;
Bundle myOptions = appWidgetManager.getAppWidgetOptions (widgetId);
// Get the value of OPTION_APPWIDGET_HOST_CATEGORY
int category = myOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, -1);
// If the value is WIDGET_CATEGORY_KEYGUARD, it's a lockscreen widget
boolean isKeyguard = category == AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD;
“一旦您了解了窗口小部件的类别,您可以选择加载不同的基本布局,设置不同的属性等等。例如:”
int baseLayout = isKeyguard ? R.layout.keyguard_widget_layout : R.layout.widget_layout;