Сервис живых обоев для Android - получить поворот экрана

Пытаюсь сделать живые обои для андроида, но не могу добиться поворота экрана, т.к. lwp - это сервис, а не активность. Мне нужно целочисленное значение (0/90/180/270), а не ориентация (пейзаж/портрет), например, если я вызову что-то вроде этого:

((Activity) context).getResources().getConfiguration().orientation;

Возможно? Я пробовал много способов и читал много статей, но я не могу этого сделать и не могу найти полезную информацию.

Спасибо!


person semtiko    schedule 07.11.2012    source источник
comment
возможный дубликат Обнаружение изменения ориентации экрана из службы   -  person Warpzit    schedule 07.11.2012
comment
Спасибо, но как я уже говорил - альбомная/портретная ориентация. Я думаю, что нашел решение. Я проверяю это прямо сейчас и размещаю здесь результат.   -  person semtiko    schedule 07.11.2012


Ответы (1)


Итак, я нашел решение :)

public int getRotation() {
    int orientation = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

    switch (orientation) {
        case Surface.ROTATION_90:  return 90;
        case Surface.ROTATION_180: return 180;
        case Surface.ROTATION_270: return 270;
        default: return 0;
    }
}

Но в моем случае это немного глючит, пока не знаю почему: если вы поместите свое устройство в положение 0 градусов (портретная ориентация) и повернете на 180 градусов, ничего не будет обнаружено, или с 90 на 270 и наоборот. А вот если повернуть свой аппарат с 0 на 90 или 270, или с 90 на 180 и 0 и так далее - все нормально (ориентация разная).

person semtiko    schedule 07.11.2012
comment
Я нашел причину неправильного вращения - Go Ex launcher! С другим лаучером все нормально! - person semtiko; 07.11.2012