Триггерные светодиодные фонари - PullRequest
0 голосов
/ 25 июня 2019

Я работаю над активностью Android, которая стремится включать и выключать светодиодные фонари разными цветами.Устройство имеет два светодиодных индикатора, один для питания и один для зарядки.Каждый из них может загореться синим, зеленым, красным и желтым.К сожалению, при использовании кода, который работает для отдельного устройства, светодиодные индикаторы на этом не срабатывают.Как бы я найти, как это сделать для этого устройства?Вот как выглядит мой код: Примечание. Я использую API 22, а переменные led_xxx содержат целое число для каждого соответствующего цвета

private void controlLED(int id, int color)
    {
        Notification notif = new Notification();

        notif.flags = Notification.FLAG_SHOW_LIGHTS;
        notif.defaults = 0;
        notif.ledARGB = color;

        if (color == led_off)
        {
            notif.ledOnMS = 0;
            notif.ledOffMS = 1;
        }
        else
        {
            notif.ledOnMS = 1;
            notif.ledOffMS = 0;
        }

        mNm.notify(id, notif);
    }

    public void LEDHandler()
    {
        LEDHandler = new Handler(new Handler.Callback()
        {
            public boolean handleMessage(Message msg) 
            {
                switch (LEDstep)
                {
                case 1:
                    controlLED(1, led_red);
                    break;
                case 2:
                    controlLED(1, led_blue);
                    break;
                case 3:
                    controlLED(1, led_green);
                    break;
                case 4:
                        controlLED(1, led_yellow);
                        break;
                case 5:
                    controlLED(1, led_off);
                    led_clicked = true;
                    mLEDButton.setClickable(true);
                    mPassButton.setClickable(true);
                    mPassButton.setVisibility(View.VISIBLE);
                    break;          
                default:
                    LEDstep = 1;
                    LEDHandler.removeMessages(WHAT);
                    return true;                
                }
                LEDstep++;
                LEDHandler.sendEmptyMessageDelayed(msg.what, 500);
                return true;
            }
        });
    }   

    public void CreateHandlers()
    {
        LEDHandler();
    }

    public void onLEDButtonClick(View view)
    {
        mLEDButton.setClickable(false);
        LEDHandler.sendEmptyMessageDelayed(1, 500);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_led);
        mNm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        InitViews();
        CreateHandlers();
    }

Спасибо за любую помощь.

...