Для того, чтобы иметь Widget, нам необходимо поддерживать XML-файл (AppWidgetProviderInfo), который описывает свойства виджета, например. размер или с фиксированной частотой обновления, как это:Постоянная частота обновления виджета Android
<?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 Widget set android:updatePeriodMillis programmatically)
Но как я могу программным образом прочитать это значение из xml-файла. Там в любом случае ?
Addenda:
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 в улове.
Я не хочу, чтобы сделать это. Это предложение было всего лишь информацией со ссылкой, но я хотел посмотреть, как ее прочитать. – Ali
О, я вижу. Существует более одного способа сделать это, но вы считаете, просто прочитали файл и проанализировали его? Посмотрите здесь: http://stackoverflow.com/questions/4329308/open-xml-file-from-res-xml-in-android – avimak
Это означает, что мне нужно проанализировать XML-файл и нет более простого кода , это то, что вы имели в виду? – Ali