दिलचस्प पोस्ट
कैसे एक डिस्क आकार मुखौटा एक numpy सरणी में लागू करने के लिए? कैसे जावा में एक निर्देशिका बनाने के लिए? डेटा.फ्रेम या मैट्रिक्स में योग की पंक्तियाँ हम किस प्रोग्राम को पता लगा सकते हैं कि कौन से आईओएस संस्करण डिवाइस चल रहा है? एक सूची से हटाना, जबकि इसे खत्म करना एंड्रॉइड वेबवेव लोडरल को बुलाते समय ब्राउजर लॉन्च करता है ओरेकल एसक्यूएल – एक स्तंभ के उच्चतम 5 मान कैसे प्राप्त करें मानक W3C मेटा टैग कौन से हैं? कैसे एक गैर-कॉन्फ्रेंस संदर्भ एक अस्थायी ऑब्जेक्ट से बाध्य नहीं हो सकता है? संकलन समय पर एक स्थिरता समारोह का मूल्यांकन कब होता है? मेवेन स्कोप के बीच का अंतर संकलन और जेआर पैकेजिंग के लिए प्रदान किया गया है प्रोग्रामेमी रूप से छुपाएं / दिखाएँ एंड्रॉइड सॉफ्ट कीबोर्ड संदर्भ से स्विफ्ट पास मूल्य या पास है JSOF 2.0 फेसलेट्स का उपयोग करते हुए XHTML में एक और एक्सएचटीएम को कैसे शामिल करें? जावा स्ट्रिंग्स: "स्ट्रिंग s = नया स्ट्रिंग (" मूर्ख ");"

एंड्रॉइड: स्क्रीन के लिए प्रसारण रिसीवर और स्क्रीन बंद

मैं बस सोच रहा था कि क्या किसी प्रसारण रिसीवर को पंजीकृत करना संभव है जो कि एप्लिकेशन मैनिफेस्ट में स्क्रीन चालू / बंद का पता लगाता है। मुझे प्रोग्राम योग्य विधि पसंद नहीं है, इसलिए यह है कि ऐप को ऐसी चीज़ों का पता लगाने के लिए चलना पड़ता है, जबकि: "मैनिफेस्ट में पंजीकृत ब्रॉडकास्ट रिसीवर्स के साथ एप्लिकेशन को चलना पड़ता है जब इंटेंट है रिसीवर्स को निष्पादित करने के लिए प्रसारण "(स्रोत: प्रोफेशनल एंड्रॉइड 2 एप्लिकेशन डेवलपमेंट बुक)

मेरा ऐप वास्तव में एक लॉकस्क्रीन ऐप है जो प्रोग्राम योग्य तरीके से हर समय चलने की जरूरत है: एस

क्या इसके आसपास कोई रास्ता है?

मैं निम्नलिखित में कोशिश कर रहा हूं:

<receiver android:name=".MyBroadCastReciever"> <intent-filter> <action android:name="android.intent.action.SCREEN_OFF"/> <action android:name="android.intent.action.SCREEN_ON"/> </intent-filter> </receiver> 

और सरल MyBroadCastReciever वर्ग:

 public class MyBroadCastReciever extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { Log.i("Check","Screen went OFF"); Toast.makeText(context, "screen OFF",Toast.LENGTH_LONG).show(); } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { Log.i("Check","Screen went ON"); Toast.makeText(context, "screen ON",Toast.LENGTH_LONG).show(); } } } 

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड: स्क्रीन के लिए प्रसारण रिसीवर और स्क्रीन बंद"

स्क्रीन के लिए दो क्रियाएं चालू और बंद हैं:

 android.intent.action.SCREEN_OFF android.intent.action.SCREEN_ON 

लेकिन अगर आप किसी मैनिफेस्ट में इन ब्रॉडकास्ट के लिए एक रिसीवर पंजीकृत करते हैं, तो रिसीवर इन ब्रॉडकास्ट को प्राप्त नहीं करेगा।

इस समस्या के लिए, आपको एक लंबे समय से चलने वाली सेवा बनाना होगा, जो इन इन्टेंट्स के लिए एक स्थानीय प्रसारण रिसीवर पंजीकृत कर रहा है। यदि आप ऐसा करते हैं, तो आपका ऐप स्क्रीन के लिए केवल तब दिखता है जब आपकी सेवा चल रही है जो उपयोगकर्ता को परेशान नहीं करेगा।

पुनश्च: इसे आगे चलने के लिए अग्रभूमि में सेवा शुरू करना

एक साधारण कोड स्निपेट कुछ ऐसा होगा:

 IntentFilter screenStateFilter = new IntentFilter(); screenStateFilter.addAction(Intent.ACTION_SCREEN_ON); screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF); registerReceiver(mScreenStateReceiver, screenStateFilter); 

सेवा के ऑनस्टोरॉय में रिसीवर को अपंजीकृत करने के लिए मत भूलना:

 unregisterReceiver(mScreenStateReceiver); 

बस उन लोगों के लिए, जो पूछ रहे हैं कि रिसीवर ACTION_SCREEN_ON और ACTION_SCREEN_OFF के लिए प्रकट होने वाले घोषित प्रसारण के साथ काम क्यों नहीं करता है:

https://developer.android.com/reference/android/content/Intent.html#ACTION_SCREEN_ON https://developer.android.com/reference/android/content/Intent.html#ACTION_SCREEN_OFF

आप इसे मैनिफेस्ट्स में घोषित घटकों के माध्यम से प्राप्त नहीं कर सकते हैं, केवल इसके लिए कॉन्टेक्स्ट। रजिस्ट्री रिसीवर () के साथ स्पष्ट रूप से पंजीकरण कर रहे हैं।

यह एक संरक्षित उद्देश्य है जो केवल सिस्टम द्वारा भेजा जा सकता है।

इसके लिए जांच करने के लिए आपको पृष्ठभूमि सेवा बनाने की आवश्यकता है तब आप इसे प्रोग्रामेटिक रूप से सेट कर सकते हैं