2012-07-31 8 views
10

मेरा ऐप minSdkVersion = 10 और लक्ष्यीकरण 16 का समर्थन करता है। मैं एपीआई स्तर> = 14 के लिए विशिष्ट विधियों को कॉल करना चाहता हूं यदि कोई विशिष्ट डिवाइस उनका समर्थन करता है। मैं रनटाइम पर चल रहे ओएस संस्करण की जांच कर सकता हूं और कॉल या उच्च एपीआई विधियों को नहीं देख सकता, लेकिन जब मैं न्यूनतम एसडीके संस्करण निर्दिष्ट करता हूं, तो केवल 10 से अधिक संस्करणों में मौजूद विधियां दिखाई नहीं देती हैं। क्या minSdkVersion की तुलना में उच्च API विधियों का उपयोग करने का कोई तरीका है?निचला एसडीके लक्षित

उत्तर

3

तरीके वजह से इस परियोजना का लक्ष्य एसडीके एसडीके जो तरीकों का इस्तेमाल किया जा करने के लिए जा रहे हैं की तुलना में कम है अदृश्य और दुर्गम हैं। उदाहरण के लिए: यदि आप एपीआई 14 एंड्रॉइड प्रोजेक्ट लक्ष्य से विधियों का उपयोग करना चाहते हैं तो एसडीके कम से कम 14 या इससे भी बेहतर होना चाहिए (वर्तमान में 16)। यह स्पष्ट है लेकिन मुझे याद आया। उसके बाद समाधान सैम ने उपयोग में एक संदर्भ दिया।

11

आप इस डिवाइस के एपीआई का परीक्षण कर सकते हैं:

उच्च API से
if(android.os.Build.VERSION.SDK_INT >= 14) { 
    // Do something fancy 
} 
else { 
    // Do something regular 
} 
+0

यही मैंने उल्लेख किया है। मैं ओएस संस्करण की जांच कर सकता हूं लेकिन केवल एसडीके के लिए विशिष्ट विधियों के बाद 10 पहुंच योग्य नहीं हैं। // कुछ ऐसा करने में विफल रहेगा, क्योंकि एसडीके 14 या उच्चतर में मौजूद विधि एसडीके 10 के लिए अनिर्धारित है। – Maxim

+2

ठीक है, एंड्रॉइड से ब्लॉग प्रविष्टि विस्तार से अवधारणा पर चर्चा कर रही है: [आपका (कप) केक कैसे खाएं और खाएं यह भी] (http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html) – Sam

+0

ऊपर वोट। ब्लॉग पोस्ट ने मुझे यह विचार दिया कि मेरे कोड में उच्च एपीआई विधियां अदृश्य क्यों हैं। उत्तर परियोजना प्रोजेक्ट में सबसे ज्यादा एसडीके लक्षित है। – Maxim

6

वर्तमान संस्करण की जांच के अतिरिक्त आपको अपनी विधि में @SuppressLint("NewApi") भी जोड़ना चाहिए ताकि संकलक इसके बारे में चिल्लाना चाहें।

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