Android Получить размеры экрана от сервиса - PullRequest
30 голосов
/ 09 июля 2010

Я получил размер экрана, используя следующее из действия,

Display display = getWindowManager().getDefaultDisplay();

Но то же самое не работает с сервисом (по понятным причинам, я знаю!), Но мне отчаянно нужно получить размер дисплея из сервиса. Может1 кто-нибудь объяснит мне другой способ получения ScreenSize ??

Так что, насколько я понимаю, мы никак не можем получить размер экрана от сервиса. На данный момент я должен начать задание по крайней мере 1ce по умолчанию и сохранить фактический размер экрана в пикселях в общих настройках. Я использую общие настройки, чтобы получить значение при запуске службы.

Это единственный способ, которым это сработает ??? Неужели мы любыми способами получаем размер экрана от сервиса ??

Ответы [ 5 ]

71 голосов
/ 31 марта 2011

есть способ получить его от услуги:

    WindowManager window = (WindowManager) getSystemService(Context.WINDOW_SERVICE); 
    Display display = window.getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();
15 голосов
/ 07 марта 2012

У меня это сработало!

DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;

Вам нужно только получить контекст.

0 голосов
/ 13 августа 2018

Попробуйте это:

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);

DisplayMetrics displayMetrics = new DisplayMetrics();

wm.getDefaultDisplay().getMetrics(displayMetrics);

int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
0 голосов
/ 10 августа 2010

Если вы запускаете службу при загрузке (или автоматически любым другим способом), то общие префы - это хороший способ.Однако, если единственный способ запустить службу - это вызвать Context.startService (), тогда на самом деле имеет больше смысла просто добавить дополнительное в намерение, которое вы используете для запуска службы.

0 голосов
/ 10 августа 2010

Ок, ребята Я думаю, что на самом деле нет способа получить размеры экрана с помощью сервиса! В настоящее время я получил доступ к размерам экрана, сохранив измерения в общих настройках при первом запуске операции. Позже, когда сервис должен использовать его, он может получить доступ к измерениям из общих настроек ... Думаю, это единственный выход на данный момент ... Спасибо всем за вашу ценную помощь !!!

...