यदि Android डिवाइस सक्रिय है, तो नेटवर्क पर पता करें


9

मेरे पास एक एनवीडिया शील्ड टीवी डिवाइस है, जो एंड्रॉइड टीवी चला रहा है।

अपने होम थिएटर सेटअप में इसे एकीकृत करने के लिए, मुझे यह निर्धारित करने में सक्षम होना चाहिए कि डिवाइस सक्रिय है या सो रहा है।

अपने अन्य उपकरणों के लिए मैं इसे निर्धारित करने के लिए सिर्फ पिंग का उपयोग करता हूं। हालाँकि, चूंकि एंड्रॉइड डिवाइस मूल रूप से हमेशा चालू होते हैं, इसलिए यह इस मामले में काम नहीं करता है।

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

मेरा प्रश्न यह है कि यदि कोई सरल तरीका है, हो सकता है कि ऐसा करने के लिए अपने स्वयं के ऐप को विकसित किए बिना ऐसा करने के लिए कोई मौजूदा एप्लिकेशन या कोई अन्य तरीका हो।


क्या आपका एंड्रॉइड डिवाइस हमेशा वाई-फाई से जुड़ा होता है?
मेंढक

मुझे लग रहा है कि आप "डिवाइस सक्रिय है या सो रहे हैं" को "ऑन" होने के साथ मिक्स कर रहे हैं। कृपया आपको और अधिक सटीक प्रश्न बनाते हैं।
मैरियन पाडज़िओच

@ HiI'mFrogatto डिवाइस वाईफाई का उपयोग नहीं कर रहा है, यह ईथरनेट के माध्यम से जुड़ा हुआ है, इसलिए यह हमेशा नेटवर्क से जुड़ा रहता है।
मिका फिशर

@ MarianPa Mardzioch एंड्रॉइड टीवी में "स्लीप मोड" नामक एक मोड है, जो एक लो-पावर मोड है, जब फोन या टैबलेट की स्क्रीन बंद होती है। मैं इस नींद मोड और सक्रिय मोड के बीच अंतर करना चाहता हूं, जहां डिवाइस टीवी पर सामान प्रदर्शित कर रहा है। क्या इससे समस्या स्पष्ट होती है?
मिका फिशर

3
@ मायकाफिशर "... अपना खुद का ऐप लिखे बिना, ..." स्टैक ओवरफ्लो उन लोगों के लिए है जो कोड करते हैं:)
frogatto

जवाबों:


1

ऐसा प्रतीत होता है कि एनवीडिया शील्ड एंड्रॉइड टीवी एंड्रॉइड 5.1.1 के साथ आता है और एक मार्शमैलो अपडेट केवल दिसंबर से उपलब्ध है। मैं मान रहा हूं कि एंड्रॉइड 5.1.1 आपके डिवाइस में इंस्टॉल किया गया संस्करण है।

क्वेरी सिस्टम सेवाएँ

सक्षम करें डिवाइस में वायरलेस मोड में। यदि आवश्यक हो तो निर्देशों के लिए आधिकारिक गाइड या इज़ी के इस उत्तर का पालन ​​करें ।

आप एंड्रॉइड की स्थिति पा सकते हैं - नींद या जाग - विभिन्न सिस्टम सेवाओं के डंप से।

  • सेवा: शक्ति

    adb shell dumpsys power
    

    स्ट्रिंग्स mWakefulnessऔर / या खोजें Display Power: state। वे दोनों आपको वह दर्जा देंगे जो आपको चाहिए।

    उदाहरण:

    adb shell 'dumpsys power | grep -e "mWakefulness=" -e "Display Power"'
    

    मुझे देता है

    mWakefulness=Asleep
    Display Power: state=OFF
    
  • सेवा: खिड़की

    adb shell dumpsys window
    

    स्ट्रिंग्स mAwake=trueऔर / या mScreenOnEarly=true/ या खोजेंmScreenOnFully=true

    उदाहरण:

    adb shell 'dumpsys window | grep -e "mAwake=" -e "mScreenOnEarly" -e "mScreenOnFully"'
    

    मुझे देता है

    mAwake=true
    mScreenOnEarly=true mScreenOnFully=true
    
  • सेवा: प्रदर्शन

    adb shell dumpsys display
    

    स्ट्रिंग्स mState=OFFऔर / या खोजें mScreenState=OFF

    उदाहरण:

    adb shell 'dumpsys display | grep -e "mState=" -e "mScreenState"'
    

    मुझे देता है

    mState=OFF
    mScreenState=OFF
    

स्वचालन का उपयोग करें

यदि पिछली पद्धति में उल्लिखित कोई भी सिस्टम सेवा आपके लिए काम नहीं करती है, तो सेटअप करें एप्लिकेशन, जैसे टास्कर या मैक्रोड्रॉयड या स्वचालित।

अब हम एक फ़ाइल में एंड्रॉइड की स्थिति लिखने के लिए स्वचालन का उपयोग करेंगे, जैसे कि स्लीप मोड के लिए स्लीपिंग और जागने पर जागना।

टस्कर ,

  • प्रोफाइल: इवेंट → डिस्प्ले → डिस्प्ले ऑफ
  • कार्य: (क्रियाएँ): फ़ाइल → फ़ाइल लिखें → लिखने के लिए एक टेक्स्ट फ़ाइल चुनें, स्लीपिंग टाइप करें और न्यूलाइन जोड़ें को अनचेक करें
  • प्रोफाइल: इवेंट → डिस्प्ले → डिस्प्ले ऑन
  • कार्य: (क्रियाएँ): फ़ाइल → फ़ाइल लिखें → में लिखने के लिए एक पाठ फ़ाइल का चयन करें, टाइप करें अवेक जोड़ें और न्यूलाइन जोड़ें को अनचेक करें

MacroDroid

एंड्रॉइड उदास रूप से echoया printfउपयोगिता के साथ नहीं आता है , अगर डिवाइस निहित है, तो आप बिजीबॉक्स को स्थापित कर सकते हैं और शांति से हो सकते हैं। यदि नहीं, तो बिजीबॉक्स बाइनरी डाउनलोड करें , निष्पादन योग्य अनुमतियाँ सेट करें और इसे /data/local/tmpउपयोग में धकेलें adb push। एक गैर-रूट किए गए डिवाइस के लिए एक और तरीका है तीन फाइलें रखना, एक राज्य के लिए, एक पाठ स्लीपिंग के साथ और एक आखिरी पाठ अवेक के साथ। जब भी स्क्रीन बंद / चालू हो, दूसरी / तीसरी फ़ाइल को पहले एक में कॉपी करें।

MacriDroid को कमांड्स को निष्पादित करने के लिए सिक्योर सेटिंग्स जैसे एक प्लगइन की भी आवश्यकता होती है ।

  • ट्रिगर: स्क्रीन ऑन / ऑफ → स्क्रीन ऑफ
  • क्रिया: सुरक्षित सेटिंग → क्रियाएँ → रन कमांड:

    • कमान: echo Sleeping > FILE_PATH
    • कमांड नाम: स्क्रीन बंद
  • ट्रिगर: स्क्रीन ऑन / ऑफ → स्क्रीन ऑन
  • क्रिया: सुरक्षित सेटिंग → क्रियाएँ → रन कमांड:

    • कमान: echo Awake > FILE_PATH
    • कमांड नाम: स्क्रीन बंद

गैर-रूट किए गए एंड्रॉइड के लिए, के echoसाथ प्रतिस्थापित किया जाना चाहिए ./data/local/tmp/busybox echo। अन्यथा, कमांड का उपयोग करके कॉपी ऑपरेशन करें cp SOURCE DESTINATION

स्वचालित

आपका प्रवाह इस छवि की तरह कम या ज्यादा दिखना चाहिए

(विस्तार के लिए छवि पर क्लिक करें)

आईएमजी:

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

अब आप वायरलेस मोड में एडीबी का उपयोग करके या एसएसएच का उपयोग करके उस फ़ाइल की सामग्री की जांच कर सकते हैं (इसके लिए SSH सर्वर की आवश्यकता होती है। सभी इंटरफेस पर सर्वर चलाएं और इसे किसी एकल इंटरफ़ेस से न बांधें।)


एक और संभावना है, जैसे कि आपके स्वचालन ऐप को फ़ाइल को स्थानीय या दूरस्थ सर्वर पर अपलोड करना ताकि आप स्थिति जानने के लिए एंड्रॉइड के बजाय उस सर्वर को क्वेरी कर सकें।



कुछ मुझे बताता है कि यह एंड्रॉइड टीवी पर एक चिकनी सवारी नहीं होगी। अगर मेरा जवाब काम करने में विफल रहता है तो मुझे बताएं। मैं इसे नीचे ले जाऊँगा। मैं चारों ओर दुबका हुआ एक अनपेक्षित उत्तर रखने का इरादा नहीं करता।
Firelord

1
वाह, विस्तृत प्रतिक्रिया के लिए धन्यवाद! इस तरह से Tasker का उपयोग करना एक आकर्षण की तरह काम करता है! एकमात्र चेतावनी यह है कि आपको इसे सेट करने के लिए एक माउस कनेक्ट करना होगा। मैंने एक फ़ाइल नहीं लिखी। इसके बजाय मैंने पायथन में एक सरल HTTP सर्वर लिखा और ढाल से इसे प्राप्त करने के लिए अनुरोध प्राप्त करें।
मिका फिशर

हाँ, तुम्हारा भी एक अच्छी तकनीक है। यह उस सर्वर को बताने जैसा है जो आप जीवित हैं। और इनाम के लिए धन्यवाद! क्या आप मुझे बताएंगे कि क्या मेरी विधि 1 (वह सिस्टम सेवा पद्धति) विफल रही या आपने इसे अभी तक आज़माया नहीं है?
Firelord

1
मैंने इसकी कोशिश नहीं की क्योंकि मैं जड़ नहीं हूं और जहां तक ​​मैं देख सकता हूं, यह आवश्यक है कि कंप्यूटर को डिवाइस से कनेक्ट करने के लिए डिवाइस को अदब नेटवर्क मोड (उदाहरण के लिए रिबूट के बाद) सक्षम करें, जो मेरे लिए बहुत असुविधाजनक है ...
मिका फिशर

0

यह वास्तव में एक समाधान नहीं है, लेकिन डिवाइस सेटिंग्स में संभवत: एक विकल्प है जो डिवाइस के निष्क्रिय मोड में जाने पर वाई-फाई को निष्क्रिय कर देता है। यहां तक ​​कि अगर ऐसा कोई विकल्प नहीं है, तो मुझे यकीन है कि इसके लिए एक आवेदन होना चाहिए। इसलिए यदि IDLE स्थिति में Wi-Fi अक्षम है, तो "पिंग" दृष्टिकोण काम करेगा लेकिन आपको डिवाइस के IDLE अवस्था में जाने पर अनकही पृष्ठभूमि अपडेट से निपटना होगा।

मुझे नहीं लगता कि इस समाधान के लिए कोई डिफ़ॉल्ट एप्लिकेशन है, लेकिन शायद आगे का बिंदु आपकी मदद करेगा। आप अपना खुद का Android एप्लिकेशन बना सकते हैं जो PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED को सुनता है Intentऔर अपने सर्वर से किसी प्रकार का अनुरोध प्राप्त करने पर यह वापस भेज सकता है कि डिवाइस जाग रहा है या नहीं। हालाँकि, ध्यान दें कि जब आपका डिवाइस सर्वर अनुरोध प्राप्त करता है, तो यह संभवत: जागृत होगा।


अच्छा विचार है, हालांकि यह एक सेट-टॉप-बॉक्स है और ईथरनेट के माध्यम से जुड़ा हुआ है। और जैसा कि मैंने लिखा है, मुझे पता है कि मैं एक ऐप लिख सकता हूं। सवाल यह है कि अगर ऐसा करने का कोई तरीका है :)
मिका फिशर

AFAIK देव के POV से Android पर कनेक्शन के प्रकार में कोई बड़ा अंतर नहीं है। तो शायद एक 3D पार्टी ऐप है जो डिवाइस के निष्क्रिय अवस्था में आने पर वायर्ड सहित किसी भी प्रकार के कनेक्शन को अक्षम कर सकता है।

0

आप यह जानने के लिए एक शेल स्क्रिप्ट सेटअप कर सकते हैं कि क्या डिवाइस निष्क्रिय मोड
में है .. यदि डिवाइस बेकार है..तो आप डिवाइस को सिग्नल भेज सकते हैं .. उदाहरण के लिए यू नीचे दिए गए जैसे adb शेल कमांड का उपयोग कर सकते हैं: adb शेल डिप्सिस डिवाइसडेल


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

हालाँकि, dumpsys deviceidleवास्तव में कम से कम मेरे फोन पर काम नहीं करता है (देता है Can't find service: deviceidle)।
मिका फिशर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.