【问题标题】:Set App Widget to Home Screen programmatically以编程方式将 App Widget 设置为主屏幕
【发布时间】:2014-04-21 11:01:16
【问题描述】:

我想将我的自定义应用小部件设置为主屏幕。我已经搜索了很多并实现了代码并运行了一些演示但是在点击按钮小部件后发生的所有事情都不能设置为主屏幕,而是从设备点击进入菜单设置

Add->Widgets->Then my widget Icon

点击我的小部件图标后,它将被设置为主屏幕。

但我不需要这个,我希望在单击我的活动小部件中的按钮后将其设置为主屏幕,而无需转到此处。

Add->Widgets->Then my widget Icon

所以请帮我解决这个问题。

【问题讨论】:

  • 好的..我猜,您已经创建了自定义应用小部件。当您单击按钮时,自定义应用小部件必须设置为...?这里不清楚吗?
  • 可能重复,答案也可能在这里stackoverflow.com/questions/16100926/…

标签: android android-appwidget


【解决方案1】:

我希望从我的活动小部件中单击按钮后,无需转到此处即可将其设置为主屏幕

这是不可能的。

【讨论】:

  • 所以每当我点击按钮时,它都会被调用,这将是强制性的 Add->Widgets->Then my widget Icon??
  • 因为所有数据都将从服务器动态设置到我的自定义小部件,我希望如果单击按钮,它将自动设置为主屏幕。但如果不可能,那么你能告诉我任何方法吗??
  • @user3556371:“因为所有数据都会从服务器动态设置到我的自定义小部件”——这就是a configuration activity 的用途。
  • 意味着我必须将此活动注册为 appwidget-provider 和清单文件中的配置??
  • 我已经检查了应用程序的功能,因为我们可以通过编程方式创建联系人小部件。
【解决方案2】:

从 Android O 开始,在您的应用中,您可以创建一个请求,让系统将小部件固定到支持的启动器上。

在应用的清单文件中创建小部件 调用 requestPinAddWidget() 方法

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
       AppWidgetManager mAppWidgetManager = getSystemService(AppWidgetManager.class);

        ComponentName myProvider = new ComponentName(AddWidgetActivity.this, 
AppWidgetSmall.class);

        Bundle b = new Bundle();
        b.putString("ggg", "ggg");
        if (mAppWidgetManager.isRequestPinAppWidgetSupported()) {
            Intent pinnedWidgetCallbackIntent = new Intent(AddWidgetActivity.this, 
 AppWidgetSmall.class);
            PendingIntent successCallback = 
  PendingIntent.getBroadcast(AddWidgetActivity.this, 0,
                    pinnedWidgetCallbackIntent, 0);

            mAppWidgetManager.requestPinAppWidget(myProvider, b, successCallback);
        }
    }

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2022-12-05
    相关资源
    最近更新 更多