2013-06-05 8 views
6

से क्लिक करें मैं एंड्रॉइड के साथ कुछ सामान की कोशिश कर रहा हूं क्योंकि मैं एंड्रॉइड विकास सीख रहा हूं, अब मेरे पास एक परिदृश्य है।बटन पर एंड्रॉइड फोन की सिस्टम तिथि एंड्रॉइड एप्लिकेशन

  • मैं (पहले मुझे पता यह संभव है चाहते हैं?)

लेआउट नीचे के रूप में है अपने आवेदन के माध्यम से एंड्रॉयड फोन की प्रणाली की तारीख में परिवर्तन करना चाहते

layout

अब जब मैं चाहता हूं कि उपयोगकर्ता बटन पर क्लिक करता है तो दिनांक 20 दिनों कहकर बढ़ाना चाहिए, मैं यह कैसे कर सकता हूं।

मैं शुरू करने में असमर्थ हूँ ... कृपया मदद

+0

आपने क्या प्रयास किया है और आप क्या शुरू करने में असमर्थ हैं? क्या आप अधिक जानकारी प्रदान कर सकते हैं? – JustWork

+0

इस अर्थ में शुरू करने में असमर्थ मुझे पता नहीं है, मुझे नहीं पता कि मैं सिस्टम की तारीख कैसे प्राप्त कर सकता हूं और इसे अपने आवेदन के माध्यम से बदल सकता हूं। क्या अंतर्निर्मित कक्षाएं सिस्टम तिथियों को प्राप्त करने और सेट करने की कार्यक्षमता प्रदान करती हैं –

+0

जब आप बटन पर अपनी प्रेस करते हैं तो मोबाइल तिथि बदलना चाहते हैं? – Blackbelt

उत्तर

4

एंड्रॉयड पर, एक आवेदन पत्र समय & तारीख SET_TIME अनुमति है, जो "अनुप्रयोगों के लिए ही संभव है पाने के लिए है के लिए लेखन पहुँच की क्या ज़रूरत है के लिए एक ही रास्ता जो एंड्रॉइड सिस्टम छवि में हैं या जो उसी प्रमाण पत्र के साथ हस्ताक्षरित हैं, जिसने अनुमति की घोषणा की है। " (signatureOrSystem protection level देखें)।

इस एप्लिकेशन को इस सुरक्षा स्तर तक पहुंचने का एकमात्र तरीका रूट डिवाइस पर चलाना है, या अपने एंड्रॉइड रोम को बनाना और साइन करना है।

यदि यह आपका मामला है, तो आप आसानी से AlarmManager या बस Calendar उदाहरण का उपयोग कर सकते हैं।

शुभकामनाएं!

+0

मुझे लगता है कि रूट डिवाइस पर चलने से कहीं अधिक है। मैं रूट पर नेक्सस 7 पर अपना एप्लिकेशन चला रहा हूं और भले ही मैं जीपीएस सिग्नल (स्मार्ट जीपीएस टाइम, एक चैंप की तरह काम करता है) से समय निर्धारित करने के लिए आवेदन प्राप्त कर सकता हूं, लेकिन जब मैं कोशिश करता हूं तो मेरा कोड तुरंत क्रैश हो जाता है। कोई विचार क्या गुम है ?? – Rich

7

जैसा कि मैंने पहले ही कहा है कि यह असंभव है। आपको SET_TIME अनुमति की आवश्यकता है और यह अनुमति सिस्टम द्वारा केवल एंड्रॉइड सिस्टम छवि में मौजूद अनुप्रयोगों के लिए दी जाती है। यदि आप उस विशेषाधिकार को प्राप्त करने में सक्षम हैं तो आप आसानी से अलार्ममेनर के साथ बदल सकते हैं। SystemClock.setCurrentTimeMillis/dev/अलार्म फ़ाइल

adb shell ls -l /dev/alarm 
crw-rw-r-- system radio  10, 46 2013-06-12 10:46 alarm 
  • c रहता लिखने के लिए Character special file (stored in /dev).
  • सिस्टम फ़ाइल
  • रेडियो के मालिक है समूह

प्रणाली और रेडियो को पढ़ लिया है और अनुमतियां लिखें (आरडब्ल्यू-, पेड़ बिट्स, int मान 6), दूसरों के पास केवल पढ़ने की अनुमति है (आर, int मान 4)। तो फ़ाइल अनुमति 664 है। यदि आप रूट उपयोगकर्ता (su चला रहे हैं) प्राप्त कर सकते हैं, तो आप इस फ़ाइल की अनुमति बदल सकते हैं और इसमें एक नया मान लिखा है। ऐप को प्रोग्रामेटिक रूप से मोबाइल डेट को संशोधित करने की अनुमति देने के लिए Google से पूछने के लिए एक बग रिपोर्ट भर दी गई है लेकिन इसे अस्वीकार कर दिया गया है। Here संदर्भ

+1

अच्छा exaplanation। सुपर उपयोगकर्ता एसेस प्राप्त करने के लिए आपको डिवाइस को रूट करने की आवश्यकता है। + 1 – Raghunandan

0

सामान्य उपयोगकर्ता अनुप्रयोगों को डिवाइस समय बदलने की अनुमति नहीं है। वैकल्पिक विकल्प के लिए following post में कैशबैश द्वारा उत्तर पढ़ें।

0

दुर्भाग्य से, ब्लैकबेल्ट सही है; एंड्रॉइड हमें बहुत अच्छी चीजें करने देता है, लेकिन प्रोग्राम समय को प्रोग्रामेटिक रूप से बदलना उनमें से एक नहीं है।

के बाद से मुझे लगता है कि आप अधिक विश्वसनीय/आधिकारिक सूत्रों की तलाश में हैं, मैं तुम्हें this open ticket with Google जिससे पता चलता है यह एक खुला समस्या है की जाँच का सुझाव - यह काम करना चाहिए, लेकिन ऐसा नहीं करता है, और यह प्रतीत नहीं होता Google जल्द ही इसे ठीक करने जा रहा है। इसका अर्थ यह है कि SET_TIME सुरक्षा स्तर यह होना चाहिए जितना होना चाहिए। (अनुमतियों के बारे में अधिक जानकारी के लिए, here देखें)

हालांकि यह समय-समय पर प्रोग्राम बदलने के समान नहीं है, फिर भी आप उपयोगकर्ता को सिस्टम समय बदल सकते हैं यदि किसी कारण से आपको सिस्टम समय की आवश्यकता हो बदला हुआ। This thread यह बताएगा कि अगर आप उस मार्ग पर जाना चाहते हैं तो इसे लागू करने के बारे में कैसे जाना है।

आशा है कि यह उपयोगी जानकारी थी!

संबंधित मुद्दे