从另一个应用程序内部安装Android小部件

时间:2012-03-08 20:42:38

标签: android android-widget android-service

我有一个功能齐全的Android小部件,它包含服务提供者类,接收者类和其他一些资源。

我有一个单独的应用程序,我已成功导入窗口小部件的类和所需资源。应用程序内部有一个按钮菜单(编码到硬菜单按钮),我想使用其中的按钮来安装小部件。我不关心小部件是否显示在主页上(我知道你不能在应用程序内部做到这一点)我只是希望小部件安装并成为主屏幕上“小部件”菜单上的一个选项。登记/> 我尝试从应用程序内部启动服务,我尝试向小部件发送更新,以便它将调用.OnEnabled,我尝试实例化java类...我显然遗漏了一些东西而无法弄清楚安卓文档。

我知道这是一个非常愚蠢的问题......

如何让serviceProvider运行并安装小部件? (使用WidgetServiceProvider.java和WidgetReceiver.java作为示例)

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) 
    {        
         ...
    case R.id.installWidget: 
        ????????    
        break;
    }

1 个答案:

答案 0 :(得分:1)

  

应用程序内部有一个按钮菜单(编码到硬菜单按钮),我想使用其中的按钮来安装小部件。我不关心小部件是否显示在主页上(我知道你不能在应用程序内部这样做)

这些句子对我来说真的没有意义。你说你想使用一个应用程序在主页上放置一个小部件..然后说你知道你不能在一个应用程序内做到这一点..

如果您询问如何让窗口小部件自动安装到通过清单xml文件实现的窗口小部件菜单中。

有关完整教程,您可以查看here,但针对您的问题,您只需要将这些标记的变体添加到清单xml文件中的Application标记。

<receiver android:name="[Package name]" android:label="[Your Label]">
  <intent-filter>
     <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
  </intent-filter>
  <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>

标签链接: