Widgetを使用するには、ウィジェットのプロパティ (サイズや固定更新頻度など) を記述する XML ファイル (AppWidgetProviderInfo) を維持する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="160dp"
android:minHeight="72dp"
android:initialLayout="@layout/widget_layout"
android:updatePeriodMillis="1800000"
android:configure="android.project.WidgetConfigure" >
</appwidget-provider>
AndroidManifest.xml でアプリ ウィジェットの構成を維持します。
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
を編集できないことはわかっていますupdatePeriodMillis
。プログラムで、AlarmManager を使用する必要があります。( Android ウィジェットは android:updatePeriodMillis をプログラムで設定します)
しかし、xml ファイルからその値をプログラムで読み取るにはどうすればよいでしょうか。方法はありますか?
補遺:
try {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext());
AppWidgetProviderInfo info = appWidgetManager.getAppWidgetInfo(R.xml.widget_info);
System.out.println("Time: " + info.updatePeriodMillis);
} catch(Exception err) {
err.printStackTrace();
}
このコードをアクティビティで使用すると、キャッチで NullPointerException が返されます。