sé que es cuestión de edad, pero hay una nueva respuesta a ella (que creo que no estaba disponible en el momento, ya que es la API de 16 en adelante solamente):
puede llamar:
Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId);
que dará a las mismas opciones que se pasa a su receptor durante
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)
con este Bundle
opciones que se pueden consultar para el dimensionamiento usando las constantes:
AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT
AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH
AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT
AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH
Recordando que Samsung le gusta ser diferente, por lo que es probable que tenga un manejador especial para TouchWiz (código de abajo copiado directamente de mi aplicación):
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null || intent.getAction() == null)
return;
// I FUCKING HATE SAMSUNG!
if (intent.getAction().contentEquals("com.sec.android.widgetapp.APPWIDGET_RESIZE") &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
handleTouchWiz(context, intent);
}
super.onReceive(context, intent);
}
@TargetApi(16)
private void handleTouchWiz(Context context, Intent intent) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
int appWidgetId = intent.getIntExtra("widgetId", 0);
int widgetSpanX = intent.getIntExtra("widgetspanx", 0);
int widgetSpanY = intent.getIntExtra("widgetspany", 0);
if (appWidgetId > 0 && widgetSpanX > 0 && widgetSpanY > 0) {
Bundle newOptions = new Bundle();
// We have to convert these numbers for future use
newOptions.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, widgetSpanY * 74);
newOptions.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, widgetSpanX * 74);
onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
}
}
cómo se te ocurrió con widgetSpan * 74? Solo prueba y error? ¿Conoces el número majic para max_height? – schwiz
lamentamos que 'handleTouchWiz' se haya copiado directamente de alguna otra respuesta SO. No tengo idea de dónde viene. – Budius
Acaba de probarse en Galaxy S6, la intención nunca se recibe, pero onAppWidgetOptionsChanged se llama con parámetros válidos, por lo que Samsung parece haber solucionado esto. – user1806772