Intereting Posts
Вопросительный знак (?) В атрибутах XML для Android Android getExternalStorageDirectory () возвращает недопустимый каталог Поиск Android ViewFlipper Пример с несколькими WebViews Обновление таблицы Sqlite, если строковое поле начинается с знака плюс (+)? Android: animateLayoutChanges = "true", что я могу сделать, если эффект затухания нежелателен? Принимая фото каждые 66 миллисекунд на телефоне Android для анализа цвета (Heart Rate Monitor) Kivy – Plyer – Android – отправка уведомления, пока приложение не запущено Форматирование HTML в новой библиотеке привязки данных Android Большие изображения (из файла), не загружаемые в Пикассо, не видно очевидной ошибки OnTouchListener on Activity никогда не вызывает Как избежать нулевого указателя в View.getDrawingCache ()? Ошибка: java.lang.NoClassDefFoundError Android Меню параметров, не отображаемое в ICS с использованием библиотеки совместимости Android sql – как вы заказываете свой SQL-запрос несколькими столбцами Идентификация запроса волейбола Android в разделе обрезки

Как изменить яркость экрана в BroadcastReceiver?

Я хочу изменить яркость, я могу использовать этот метод:

public static void SetBright(int brightness, Context context) { if (isAutoBrightness(context)) { stopAutoBrightness(context); } WindowManager.LayoutParams lp = ((Activity) context).getWindow() .getAttributes(); lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f); ((Activity) context).getWindow().setAttributes(lp); } 

Мне нужна SetBright(int brightness, Context context); чтобы перейти в SetBright(int brightness, Context context);

Но теперь я должен вызвать метод SetBright(int brightness, Context context) в Brocastreceiver. Я могу использовать контекст в методе onReceive (контекст контекста, намерение намерения), но если я покинул приложение, это не сработает.

Есть ли другой метод, который я могу использовать для изменения яркости вместо использования активности?

    Начать фиктивную активность и установить параметр окна с использованием яркости (от 0 до 1 диапазона-1 для 255). Запускайте таймер 50, 100 или 500 мс независимо. После этого завершите работу.

     TimerTask finishTask = new TimerTask() { @Override public void run() { BrightActivity.this.finish(); timer.cancel(); if (timer != null) { timer = null; } } }; timer.schedule(finishTask,Constants.BRIGHTNESS_REFRESH_DELAY); 

    Вначале я использовал 500 мс для времени обновления экрана, но в галактике s3 он не работает. Но 1000 в порядке. Таким образом, время обновления экрана зависит от устройства.

    Если вы хотите сохранить, попробуйте это после настройки яркости:

     public static void saveBrightness(Context context, int brightness) { ContentResolver resolver= context.getContentResolver(); Uri uri = android.provider.Settings.System .getUriFor("screen_brightness"); android.provider.Settings.System.putInt(resolver, "screen_brightness", brightness); resolver.notifyChange(uri, null); }