как изменить индикатор экрана, подобный Cyanogenmod widgetrenderFx night mod

#android #android-widget #render #cyanogenmod #screen-brightness

#Android #android-виджет #визуализация #cyanogenmod #яркость экрана

Вопрос:

я работаю над приложением, как можно изменить яркость экрана Android, может somme помочь мне, приведя несколько примеров того, как это сделать.

Спасибо 🙂

Ответ №1:

Этот фрагмент кода установит яркость:

 private void setBrightness(int brightness) {
    try {
        IHardwareService hardware = IHardwareService.Stub.asInterface(
            ServiceManager.getService("hardware"));
        if (hardware != null)
            hardware.setScreenBacklight(brightness);
        } catch (RemoteException doe) {          
    }        
}
  

Не забудьте добавить в свой манифест

 <uses-permission android:name="android.permission.HARDWARE_TEST" />
  

Пожалуйста, проверьте этот полный пример

Комментарии:

1. Привет, Шериф, спасибо за ответ, но я не могу загрузить hardwar.jar где я могу его найти или источник.

2. вам не нужно загружать какой-либо jar-файл. Просто добавьте этот код, и, возможно, вы забыли добавить разрешение (проверьте ответ, который я отредактировал)

3. Но у меня ошибка при импорте android.os. IHardwareService и импортировать android.os.ServiceManager; и я не могу скомпилировать

4. @user820688 Мне жаль… Да, вы правы. пожалуйста, проверьте code.google.com/p/batterywidget/source/browse/trunk … … существует файл под названием ‘hardware09.jar «Я надеюсь, что в нем есть все необходимые классы

5. Не работает, у меня есть тест на Android 2.2, выдает ошибку «java.lang. Ошибка NoSuchMethodError: android.os. IHardwareService.setScreenBacklight», я включил jar.

Ответ №2:

Вы можете использовать настройки Android для регулировки яркости.

  android.provider.Settings.System.putInt(getContentResolver(),
                android.provider.Settings.System.SCREEN_BRIGHTNESS,
                (int)progress);
  

для ручных настроек, которые принимают (0-255) по мере выполнения и

 android.provider.Settings.System.putFloat(getContentResolver(),
                AppConstant.SCREEN_AUTO_BRIGHTNESS_ADJ, progress);
  

для автоматических настроек, которые выполняются (-1 к 1) по мере выполнения