मैं एलईडी अधिसूचना चालू करने की कोशिश कर रहा हूं, उदाहरण के लिए हरा रंग। स्क्रीन बंद करें, और हर 5 सेकंड उस रंग को लाल (हरा-> लाल, लाल-> हरा) में बदल दें। मुझे लगता है कि मैंने सब कुछ किया है: एक सेवा में मैंने एक टाइमर बनाया जो अधिसूचना प्रदर्शित करने के लिए विधि निष्पादित करता है।हर 5 सेकंड में एलईडी अधिसूचना का रंग बदलना
public class LEDService extends Service
{
private boolean TimerStarted;
private Timer timer;
private NotificationManager myNotificationManager;
private long LastColor;
public TurnLedOn()
{
Notification notify = new Notification();
notify.flags |= Notification.FLAG_SHOW_LIGHTS;
notify.LedOnMS = 500;
notify.LedOffMS = 0;
//I in other example I also used array of colors
if (LastColor == 0x00FF00) notify.LedARGB = 0xFF0000; else notify.LedARGB = 0x00FF00;
LastColor = notify.LedARGB;
}
private MyTimerTask extends TimerTask
{
@Override
public void run()
{
TurnLedOn();
}
}
@Override
public void OnCreate()
{
TimerStarted = false;
myNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
if (TimerStarted == false)
{
timer = new Timer();
timer.schedule(new MyTimerTask(), 0, 5000);
}
return START_STICKY;
}
@Override
public IBinder onBind()
{
return null;
}
@Override
public void onDestroy()
{
timer.close();
}
}
समस्या क्या है? एलईडी रंग बदलता नहीं है ... जब मैं स्क्रीन बंद करता हूं, तो रंग तब तक हरा होता है जब तक मैं स्क्रीन चालू नहीं करता और उसे फिर से बंद नहीं करता। मैं एक बार यह सेवा शुरू करना चाहता हूं, स्क्रीन बंद करूँगा और एलईडी लाइट बदलते रंग को देखूंगा :)।
बीटीडब्ल्यू: मैंने अपने फोन का परीक्षण किया और यह हरे और लाल रोशनी दिखा सकता है इसलिए यह समस्या नहीं है।
अग्रिम धन्यवाद और मेरी अंग्रेजी के लिए खेद है।
मैं अपने ही सवाल का जवाब नहीं कर सकते हैं तो मैं इस यहाँ जोड़ देंगे: अपने सुझाव के लिए
धन्यवाद Olsavage, मैं अपने कोड को clearAll() जोड़ा है, लेकिन प्रभाव अभी भी एक ही है ; /। मैंने अपने आवेदन में लॉगिंग भी जोड़ा (Log.i())। ऐसा लगता है कि जब मैं स्क्रीन बंद करता हूं (क्यों ??) चालू करता है तो सिस्टम मेरी सेवा को रोक रहा है।
स्क्रीन चालू: यह कुछ इस तरह से है टाइमर चल रहा है और अधिसूचना तैनात किया जाता है (लेकिन मैं पर नेतृत्व को नहीं देख सकते, क्योंकि यह देखने के लिए मैं स्क्रीन बंद करने के लिए है: पी)
लॉक बटन पर क्लिक करें: टाइमर लगभग बंद हो गया है, इसलिए एलईडी कभी-कभी रंग बदलती है।
स्क्रीन बंद है: टाइमर काम नहीं कर रहा है, TurnLedOn विधि अब और नहीं चल रहा है। एलईडी रंग नहीं बदलता है।
अब सवाल यह है: स्क्रीन को से बंद करने के बाद मेरी सेवा क्यों रुक गई है? यहां तक कि जब मैं इसमें सरल संचालन कर रहा हूं (जैसे एक चर को बढ़ाने)। शायद मुझे इसकी प्राथमिकता या कुछ सेट करना है?
मैंने टाइमर अंतराल को 100ms में बदल दिया और देखें कि कोड अच्छा है। एलईडी ने 5-15 बार रंग बदल दिए लेकिन फिर तुरंत बंद कर दिया। मुझे पता है कि यह एप्लिकेशन पूरी तरह से बेकार है लेकिन मैं बस इसे काम करना चाहता हूं :)।
EDIT2: मुझे लगता है कि मुझे अपनी सेवा लॉन्च करने के लिए अलार्ममेनगर और लंबित इंटेंट का उपयोग करना होगा ... कल मैं ऐसा करने की कोशिश करूंगा।
यह पहले से ही सही रंग प्रदर्शित करता है :) समस्या यह है कि स्क्रीन बंद होने पर रंग बदल नहीं जाता है। रंग बदलने के लिए मुझे अपने फोन की स्क्रीन चालू करनी है और इसे बंद करना है ... मैं रंग को स्वचालित रूप से बदलना चाहता हूं। – krzysnick