【问题标题】:How to bring up a widget on home screen programatically如何以编程方式在主屏幕上显示小部件
【发布时间】:2011-07-12 05:20:03
【问题描述】:

我试图以编程方式在主屏幕上显示一个小部件,但在通过意图传递小部件 ID 并调用 startActivity(pickIntent) 时遇到问题。小部件列表即将出现,但我开发的小部件没有被选中。

final int[] appWidgetIds = appWidgetManager.getAppWidgetIds(component);
Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        if (extras != null) {
            mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
                    AppWidgetManager.INVALID_APPWIDGET_ID);
}

我在这里收到extras= null。所以,我尝试将小部件 ID 分配为 WidgetId = mAppwidgetHost.allocateAppWidgetId();

通过意图发送:

Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
        pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, WidgetId);
        startActivity(pickIntent);

但我的小部件仍然没有被选中。 谁能告诉我如何在没有任何用户交互的情况下在主屏幕上调出一个小部件。提前致谢。

【问题讨论】:

    标签: android android-widget android-intent


    【解决方案1】:

    您不能这样做:标准小部件选择器不允许您指定特定小部件。

    【讨论】:

    • 你能告诉我是否有模拟从列表中选择特定小部件的用户交互?
    • 目前无法模拟用户交互:我花了痛苦的一天来寻找这个问题的答案。这将是一个很好的用户界面改进(一个按钮小部件安装),但不幸的是,当您发送 Intent(android.git.kernel.org/?p=platform/packages/apps/…)时启动的活动并没有提供一种实际强制它选择特定小部件的方法。
    • 应用 CM flashlite 是如何做到这一点的,它在安装过程中自动显示主屏幕小部件
    • user2548816 你找到复制CM Flashlite的解决方案了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多