6

私の #$#%$%#$ のように見えた受信者は、マニフェストのアプリケーション要素ではありませんでした

やあ

helloworld appwidget を作成して、その仕組みを確認しました。私はアンドロイド開発サイトの開発例に従いました。しかし、何らかの理由で、ウィジェットはウィジェット リストに表示されたくありません。

AndroidManifest.xml

 <receiver android:name="VoiceRIAWidget" android:label="Voice RIA">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <meta-data android:name="android.appwidget.provider"
            android:resource="@xml/appwidget_info" />
    </receiver>

appwidget_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="Voice RIA" android:minWidth="50dp" android:minHeight="50dp"
    android:updatePeriodMillis="86400000" android:initialLayout="@layout/appwidget">
</appwidget-provider>

VoiceRIAWidget

public class VoiceRIAWidget extends AppWidgetProvider
{

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds)
    {

        final int N = appWidgetIds.length;

        for (int i = 0; i < N; i++)
        {
            int appWidgetId = appWidgetIds[i];

            CharSequence text = "Hello";

            RemoteViews views = new RemoteViews(context.getPackageName(),
                    R.layout.appwidget);

            views.setTextViewText(R.id.appwidget_text, text);

            appWidgetManager.updateAppWidget(appWidgetId, views);
        }

        super.onUpdate(context, appWidgetManager, appWidgetIds);
    }
}

appwidget.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/appwidget_text" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:textColor="#ff000000" />

実行されていないものが表示されませんが、リストには何も表示されません。

4

3 に答える 3

7

私はちょうど同じ問題を抱えていました。私の間違いは、レシーバータグをマニフェストタグのすぐ内側に配置したのに、アプリケーションタグ内に配置することになっていたことです。これは私の機能していないXMLでした:

<manifest....>
  ....
  <receiver ...>
    ...
  </receiver>
  <application ...>
    ...
  </applciation>
</manifest>

これは私のうまく機能しているXMLです:

<manifest...>
  ....
  <application...>
    ...
    <receiver...>
      ...
    </receiver>
  </application>    
</manifest>

お役に立てば幸いです。

于 2010-08-05T13:48:25.457 に答える
6

私はちょうど同じ問題を抱えていました。私の間違いは、SD カードにインストールされた既存のアプリに加えてアプリ ウィジェットを作成したことです。アプリを電話に移動すると修正されました。

于 2011-03-09T08:49:49.943 に答える
0

同様の問題に直面しました。私は、あなたが最初に正しく行ったメタデータを受信機の外に置いていました。

于 2011-07-23T04:33:39.263 に答える