2013-01-06 11 views
6

एंड्रॉइड ऐप स्टोर बाजार-विशिष्ट एपीआई की पेशकश के साथ, मैं एक एंड्रॉइड ऐप कैसे बना सकता हूं जो सशर्त रूप से विक्रेता-विशिष्ट पुस्तकालयों का उपयोग करता है? उदाहरण के लिए, अमेज़ॅन अपनी स्वयं की इन-ऐप खरीद और "गेमक्रिकल" एपीआई प्रदान करता है। Google के पास अपने स्वयं के लाइसेंसिंग एपीआई हैं, और अब ओया के पास आईएपी और हार्डवेयर नियंत्रकों के लिए अपने स्वयं के एपीआई होंगे।एंड्रॉइड ऐप्स के लिए सस्ती रूप से विक्रेता-विशिष्ट एपीआई का उपयोग कैसे करें?

इन विक्रेताओं-विशिष्ट एसडीके के प्रसार के साथ मेरे एंड्रॉइड गेम के कई अलग-अलग निर्माण बनाए रखना मुश्किल हो रहा है। मैं जानना चाहता हूं कि मेरी परियोजनाओं को कैसे बनाया जाए ताकि मेरा कोड विभिन्न एपीआई के लिए रनटाइम पर जांच कर सके और avaialble अगर उनका उपयोग कर सके।

if (amazon api is available) 
    // Do some amazon-specific stuff 

बिल्ड-टाइम पर मैं सभी पुस्तकालयों से लिंक करूंगा और फिर प्रत्येक स्टोर में एक ही सार्वभौमिक ऐप अपलोड करूंगा।

+1

आपका उत्तर शायद लाइब्रेरी द्वारा भिन्नता जा रहा है। और, कुछ लोग इन सभी में कुशल होंगे। कृपया लिंक प्रदान करें , या, बेहतर अभी तक, समझाएं कि आप उनमें से प्रत्येक का उपयोग कैसे करते हैं (उदाहरण के लिए, '<उपयोग-पुस्तकालय> '?)। – CommonsWare

+0

आप प्रत्येक एपीआई के लिए' सार्वजनिक स्थिर अंतिम बूलियन' चर का उपयोग कर सकते हैं, फिर इसे संदर्भित करते समय इसके मान की जांच करें। मुझे लगता है कि यह सबसे अच्छा एक-आकार-फिट-सब समाधान है जो आपको मिलेगा; क्योंकि कॉमन्सवेयर ने कहा, अन्य समाधान एपीआई-विशिष्ट होंगे। – Eric

+0

कम से कम अमेज़ॅन भुगतान API के लिए, मुझे पता है कि यह सैंडबॉक्स मोड में प्रवेश करता है अगर यह –

उत्तर

5

मैं वर्तमान में इसका उपयोग कर रहा हूं।

private boolean isAmazonInstall() 
{ 
    PackageManager pm = getPackageManager(); 
    String installationSource = pm.getInstallerPackageName(getPackageName()); 
    if (installationSource != null && installationSource.startsWith("com.amazon")) 
    { 
        return true; 
    } 
      return false; 
} 

कथित तौर पर, एक अमेज़न स्थापित के लिए, getInstallerPackageName की वापसी मान "com.amazon.venezia" है। Google Play से इंस्टॉल किए गए एप्लिकेशन के लिए, परिणाम "com.android.vending" है (हालांकि यह "com.google.android.feedback" होता था। मैन्युअल एपीके रिटर्न शून्य को इंस्टॉल करता है।

मैं सक्षम नहीं हूं आधिकारिक पुष्टि प्राप्त करें कि यह दृष्टिकोण मान्य है। लेकिन मुझे कोई बेहतर दृष्टिकोण नहीं मिला है।

+0

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

+0

पूरी तरह सहमत हैं। यह थोड़ा सा स्केची है। –

+0

शांत, यह ब्लैकबेरी दुनिया के लिए कैसे काम करेगा? – CQM

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