2012-10-17 93 views
14

मैंने गुगल किया है, लेकिन मुझे एंड्रॉइड में उपयोगकर्ता परिवर्तन प्रणाली दिनांक/समय को रोकने के लिए कोई सलाह नहीं मिल सकती है।उपयोगकर्ता बदलती प्रणाली दिनांक/समय (एंड्रॉइड में) को कैसे रोकें?

हम एक एंटरप्राइज़ एप्लिकेशन विकसित कर रहे हैं, हम डिवाइस के उपयोगकर्ता को समय सेटिंग सेट करने में सक्षम होना चाहते हैं। दूसरे शब्दों में, हम एक नीति निर्धारित करना चाहते हैं जो परिभाषित करता है, कि उपयोगकर्ता एंड्रॉइड डिवाइस में दिनांक और समय बदल नहीं सकता है। क्या ऐसा करने के लिए कोई सिफारिशें हैं? धन्यवाद।

+0

+1। – Lucifer

+0

मुझे यकीन है कि यह संभव नहीं है। आप ब्रॉडकास्ट रिसीवर का उपयोग तब सूचित कर सकते हैं जब उपयोगकर्ता द्वारा समय बदल दिया गया हो और उस गणना के बाद उस आधार पर जो भी आप चाहते हैं। मुझे लगता है कि यह आपके उपयोगकर्ताओं के लिए अच्छा अनुभव नहीं है जब वे देखते हैं कि वे आपके आवेदन के कारण समय नहीं बदल सकते हैं। – Hesam

+0

मुझे संदेह है कि यह संभव होगा। फोन की पहली प्राथमिकता कॉल और एसएमएस सही है, दूसरी प्राथमिकता समय और तारीख जैसी मूल बातें होगी। एक ऐप उन कार्यों में से किसी को ब्लॉक करने में सक्षम नहीं होना चाहिए। – Muz

उत्तर

1

चूंकि डिवाइस व्यवस्थापक ढांचे में इसके लिए कोई नीति समर्थन नहीं है, इसलिए आप नहीं कर सकते हैं। एक सुविधा अनुरोध फ़ाइल करें, यह अगले संस्करण में जोड़ा जा सकता है।

+0

धन्यवाद मैंने पाया कि मैं एंड्रॉइड में उपयोगकर्ता पहुंच दिनांक/समय सेटिंग गतिविधि को रोककर उपयोगकर्ता परिवर्तन दिनांक/समय सेटिंग को रोक सकता हूं। –

+0

और आपने इसका प्रबंधन कैसे किया? जो कुछ भी आपके पास है, यह बेहद असंभव है कि यह सभी एंड्रॉइड संस्करणों पर विशेष रूप से हालिया संस्करणों पर भरोसेमंद काम करेगा। –

+1

मैं गतिविधि प्रबंधक का उपयोग करके यह जांचने के लिए कि कौन सी गतिविधि चल रही है।इसलिए यदि उपयोगकर्ता दिनांक/समय सेटिंग गतिविधि चुनता है तो मैं एक और गतिविधि कॉल कर सकता हूं। –

1

मुझे किसी भी तरह से पता नहीं है कि आप डिवाइस के डिफ़ॉल्ट व्यवहार को बदल सकते हैं।
यदि सिस्टम समय नेटवर्क से अलग होता है तो आप अपने एप्लिकेशन को चलने से रोक सकते हैं। या आप सिस्टम समय के बजाय अपने ऐप में नेटवर्क समय का उपयोग कर सकते हैं।

इस पोस्ट का जवाब बताता है कि नेटवर्क समय तक कैसे पहुंचे।

जब समय उपयोगकर्ता द्वारा बदला जाता है के लिए रजिस्टर एक प्रसारण रिसीवर:

How can I get the "network" time, (from the "Automatic" setting called "Use network-provided values"), NOT the time on the phone?

4

यहाँ एक तिहाई विकल्प है कि काफी बैटरी जीवन को बचाने के चाहिए। फिर ऐप को तब तक अक्षम करें जब तक कि नेटवर्क समय या सर्वर-समय के विरुद्ध डिवाइस का समय चेक न हो जाए।

उन प्रसारण रिसीवर मौजूद हैं। मैंने अभी इस ऐप के साथ चेक किया है जिसे Internal Broadcast Monitor कहा जाता है जिसे मैंने अभी Google Play पर पाया है।

enter image description here

यहाँ नीचे जहां मैं दोनों समय बदल दिलचस्प हिस्सा है और तिथि है:

enter image description here

और नीचे हिस्सा है जहाँ मैं समय क्षेत्र बदल दिया है: enter image description here

+0

यह उपयोगकर्ता काम करता है अगर उपयोगकर्ता ऐप सेवा बंद करता है और फिर वह डिवाइस का समय बदलता है। – user3782779

+0

@ user3782779, एक प्रसारण रिसीवर को चलाने की सेवा की आवश्यकता नहीं है। यह पूरा मुद्दा है। –

+0

फिर, क्या मैं अपनी प्रक्रिया में ब्रॉडकास्ट रिसीवर में भी अपने कोड का एक टुकड़ा चला सकता हूं और मेरी सेवा मारे गए हैं? – user3782779

-1

आप वर्तमान समय को डीबी पर सहेज सकते हैं जब आवेदन शुरू होता है और प्रत्येक 1 मिनट की जांच करता है यदि वर्तमान समय डीबी समय + 60 सेट सिस्टम समय डीबी समय + 60 के बराबर नहीं है। वास्तव में अच्छे प्रश्न के लिए