代码之家  ›  专栏  ›  技术社区  ›  psychotik

模拟器中的Android小部件

  •  5
  • psychotik  · 技术社区  · 15 年前

    我有一个android应用程序。

    • 用更新了我的清单 <receiver> AppWidgetProvider 实施
    • 在res/xml中添加了一个新的xml文件 <appwidget-provider>
    • 添加了一个简单的默认布局 ImageView 以及 TextView
    • AppWidgetProvider程序

    编辑: 我的清单接收者是这样的:

    <receiver android:name=".MyAppWidgetProvider"
              android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <meta-data android:name="android.appwidget.provider"
                   android:resource="@xml/my_appwidget_info" />
    </receiver>
    

    下面是my appwidget_info.xml的外观:

    <?xml version="1.0" encoding="UTF-8"?>
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:icon="@drawable/ic_logo"
        android:label="MySampleApp"
        android:minWidth="294dp"
        android:minHeight="72dp"
        android:updatePeriodMillis="86400000"
        android:initialLayout="@layout/my_app_widget" >
    </appwidget-provider>
    
    6 回复  |  直到 15 年前
        1
  •  6
  •   tinja    15 年前

    清单中的接收方标记是否具有正确的意图过滤器和元数据?它应该像 documentation :

    <receiver android:name="MyAppWidgetProvider" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <meta-data android:name="android.appwidget.provider"
                   android:resource="@xml/my_appwidget_info" />
    </receiver>
    

    编辑: <receiver> 标签也需要位于 <application> 标签。

        2
  •  1
  •   EboMike    15 年前

    如果你的应用程序安装在SD卡上,你的所有小部件都会悄悄地拒绝出现在列表中。(文档确实清楚地表明,如果您在外部存储器上,就不能有小部件)。

    如果您允许在SD卡上安装(因为用户通常会要求安装),那么他们需要清楚在这种情况下不能使用小部件。如果某个应用程序在SD卡上,并且您要使用该小部件,则首先必须将该应用程序移回内部存储,然后重置手机(!)。

        3
  •  1
  •   Sam    12 年前

    我也有同样的问题。一些可以阻止它出现在不同型号上的东西需要检查。

    1) 必须在xml中的AppWidget提供程序上设置minHeight和minWidth,如果删除其中任何一个并在emulator中启动,则小部件将消失。 3) 如果您安装在SD卡上而不是内部,有些型号可能会有问题,尽管我仍然喜欢安装在SD卡上。 5) 您必须按照TinJa的回答正确设置清单。

    希望能有所帮助。

        4
  •  0
  •   Scott Weldon Marc-Alexandre Bérubé    9 年前

    我也有同样的问题,然后我终于解决了。通常在模拟应用程序时,它有一个要加载的活动。对于纯小部件的应用程序,情况并非如此,但IDE仍然认为您正在尝试启动活动。

    要更改此项,请转到 生成选项

    Example

    启动选项 没有什么

    Example

        5
  •  -1
  •   ubzack    14 年前

    这是一个愚蠢的错误,但是请确保只有一个在接收方元数据标记中指向该名称的xml文件。而且我认为它应该总是在xml文件夹中。

        6
  •  -1
  •   Oded BD    13 年前

    我也有同样的问题。 我的问题是,当我删除/layout/main.xml文件时,小部件出现了!