2011-11-17 22 views
5

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

इसका समाधान सी 2 डीएम का उपयोग करना होगा, और मैं वर्तमान में यह स्थापित करने के लिए शोध कर रहा हूं। हालांकि मेरे 7% उपयोगकर्ता अभी भी एंड्रॉइड 2.1 चला रहे हैं, और मैं उन्हें अपने ऐप से बाहर नहीं करना चाहता हूं।

मुझे लगा कि मैं जांच सकता हूं कि एंड्रॉइड का कौन सा संस्करण चल रहा है, और फिर यह तय करें कि सी 2 डीएम या मतदान (एक ही एपीके में दोनों के लिए कोड होना) का उपयोग करना है या नहीं। हालांकि, सी 2 डीएम कोड चलाने के लिए मुझे अपने मैनिफेस्ट में कुछ अनुमतियों का उपयोग करके निर्दिष्ट करना होगा, और मुझे चिंता है कि इन अनुमतियों के साथ एंड्रॉइड 2.1 उपयोगकर्ता मेरी एपीके फ़ाइल डाउनलोड नहीं कर पाएंगे।

तो मेरा सवाल यह है कि अगर मैं अपनी धारणा में सही हूं कि 2.1 उपयोगकर्ता सी 2 डीएम अनुमतियों के साथ एक ऐप डाउनलोड नहीं कर पाएंगे, और यदि ऐसा है तो इसके आसपास कैसे काम करें। क्या मुझे दो अलग-अलग एपीके फाइलें बनाना होगा और उन ऐप में किए गए प्रत्येक (अन्य) अपडेट के साथ उन्हें अलग से अपडेट करना होगा जो पुराने एंड्रॉइड संस्करणों पर प्रतिबंधित नहीं है?

आगे धन्यवाद।

+0

यह एक अच्छा सवाल है लेकिन वर्तमान शीर्षक के साथ इसकी बहुत कम दृश्यता है। मैं "प्रत्येक संस्करण के लिए अलग-अलग अनुमतियों" जैसी कुछ सुझाता हूं। –

+0

धन्यवाद, मैंने शीर्षक को एक और सामान्य शीर्षक में बदल दिया है। – Lars

उत्तर

4

Google सी 2 डीएम पहले 2.2 काम नहीं करेगा लेकिन आप सभी संस्करणों में अनुमतियों को बनाए रख सकते हैं। जैसा कि आप कर रहे हैं, मैनिफेस्ट में रिसीवर सेट कर रहा है।

तो जब आप प्री 2.2 पंजीकृत करते हैं तो आपको कभी भी अपने पंजीकरण अनुरोधों के परिणाम प्राप्त नहीं होंगे।

बस जवाब अधिक स्पष्ट बनाने के लिए:

के रूप में आप एक कस्टम अनुमति परिभाषित कर रहे हैं:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

पूर्व 2.2 उपकरण सिर्फ पर ध्यान न दें जाएगा इस अनुमति। मतलब यह है कि कोई भी डिवाइस इस सेट के साथ स्थापित कर सकता है। यह सिर्फ पूर्व 2.2 काम नहीं करेगा।

पीएस यह ध्यान देने योग्य भी है। Google C2DM एंड्रॉइड मार्केट के बिना डिवाइस पर काम नहीं करेगा (और एंड्रॉइड मार्केट सेटअप के बिना)।

+0

तो, सिर्फ स्पष्टीकरण के लिए, 'com.google.android.c2dm.permission.RECEIVE' अनुमति एक कस्टम अनुमति है? यह अनुमति मेरे द्वारा परिभाषित नहीं है (लेकिन Google द्वारा?)। – Lars

+1

वह अनुमति वास्तव में बाजार प्लेस ऐप में 2.2 के बाद की अनुमति को संदर्भित करती है। अपने कस्टम के रूप में लोगों को प्री 2.2 उपकरणों पर डाउनलोड/काम करने से रोकने के लिए बाजार की गति में कुछ भी सेट नहीं है। क्षमा करें मेरे पास एक लिंक नहीं है कि कस्टम अनुमतियां कैसे काम करती हैं। कहने के लिए पर्याप्त, जब तक कि * android.permission.X * बाजार स्थान इसे अनदेखा नहीं करेगा। –

+0

ऐसा लगता है कि मुझे अनुमतियों पर पढ़ने की आवश्यकता है। बहुत बहुत धन्यवाद। – Lars

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