तुम इतनी निर्धारित करने के लिए अपने स्वयं के अनुप्रयोग अमेज़न की दुकान से स्थापित किया गया है कि क्या कोशिश कर रहे हैं, उस स्थिति के लिए निम्न से संबंधित है। लेकिन सवाल पूछने के बाद से चीजें बदल गई हैं, इसलिए यह उत्तर 2016 के लिए मान्य है, 2012 में नहीं।
जैसा कि ऊपर बताया गया है, अमेज़ॅन इंस्टॉलर के संस्करणों द्वारा स्थापित ऐप्स 2013 के मध्य से पहले रिलीज किए गए ऐप्स getInstallerPackageName() से जब उस विधि को स्थापित ऐप का पैकेज नाम पास कर दिया जाता है। लेकिन उस समय के बाद उन्होंने इस तरह के कॉल के लिए "com.amazon.venezia" वापस करना शुरू कर दिया। और हाल ही में, अमेज़ॅन अंडरग्राउंड ऐप एक दूसरा इंस्टॉलर पैकेज नाम, com.amazon.mshop.android असाइन कर सकता है।
तो, यदि आपको लगता है कि आप जंगली में इंस्टॉलर के उन पुराने संस्करणों का सामना कर सकते हैं, तो यह एक पूरी तरह से विश्वसनीय संकेतक नहीं है, क्योंकि एक ऐप जिसे आसानी से sideloaded (स्थानीय भंडारण में आयोजित एपीके से स्थापित) आमतौर पर वापस आ जाएगा getInstallerPackageName() से शून्य जब उस विधि को उसके पैकेज के लिए बुलाया जाता है, और इस प्रकार उन पुराने अमेज़ॅन स्टोर ऐप्स में से किसी एक द्वारा इंस्टॉल किए गए ऐप से अलग नहीं होगा।
, यदि इस समस्या के बावजूद, आप इस दृष्टिकोण का उपयोग करना चाहते हैं, लेकिन पुराने संस्थापक संस्करणों है कि रिक्त के रूप में संस्थापक निशान होने उपकरणों के लिए मिथ्या नकारात्मक से बचने के लिए चाहते हैं, तो आपको निम्न कोशिश कर सकते हैं:
टेस्ट getInstallerPackageName() यह देखने के लिए कि यह शून्य है या नहीं।
यदि गैर-शून्य है, तो यह देखने के लिए जांच करें कि यह com.amazon से शुरू होता है, और आप विश्वास कर सकते हैं कि यह अमेज़ॅन से स्थापित किया गया है, और आप विश्वास कर सकते हैं कि यह अमेज़ॅन से स्थापित नहीं किया गया था नहीं करता।
लेकिन अगर शून्य है, तो डिवाइस पर हर पैकेज पर पुनरावृत्ति करके एक अतिरिक्त परीक्षण करें, प्रत्येक पैकेज नाम को इन्स्टॉलरपेकेजनाम() प्राप्त करने के लिए सामना करना पड़ रहा है, यह देखने के लिए कि क्या कोई भी "com.amazon" से शुरू होता है या नहीं ।
कि मूल्य के साथ वहाँ कोई नहीं कर रहे हैं, तो अपने शून्य मान अस्पष्ट है, और आप पर विचार करना चाहिए कि आप किसी भी जानकारी एक ही रास्ता या के बारे में है कि क्या अपने अनुप्रयोग अमेज़न की दुकान से स्थापित किया गया था अन्य की जरूरत नहीं है कि (के रूप में साइड लोडेड का विरोध किया)।
लेकिन अगर यहां तक कि इंस्टॉलर पैकेज मूल्य होने से एक ही ऐप्लिकेशन है, तो आप यह मान सकते हैं अपने अनुप्रयोग , अमेज़न की दुकान से स्थापित नहीं क्योंकि यह एक सुरक्षित शर्त डिवाइस का एक संस्करण चल रहा है वह यह है कि यह था कि अमेज़ॅन स्टोर जो "com.amazon" से शुरू होने वाले इंस्टॉलर पैकेज नाम के साथ इंस्टॉल किए गए ऐप्स को टैग करता है, यह देखते हुए कि आपके अलावा कम से कम एक ऐप वास्तव में इस तरह से टैग किया गया है - अत्यंत किसी भी अन्य तरीके से होने की संभावना नहीं है। और इसका मतलब है कि के लिए शून्य मान ऐप अमेज़ॅन इंस्टॉलर द्वारा निर्मित नहीं किया गया था, बल्कि कुछ अन्य इंस्टॉलर द्वारा - और संभवतः इसका मतलब है कि आप ऐप को अपने एपीके की स्थानीय प्रति से अलग-अलग लोड किया गया था।
यह है 'uk.amazon.mShop.android', जो' गूगल पर Android' के लिए अमेज़न मोबाइल का पैकेज नाम है खेलते हैं? ... –
एंड्रॉयड ग्राहक के लिए अमेज़न एपस्टोर नहीं पर है गूगल प्ले। आप इसे अमेज़ॅन से डाउनलोड करते हैं। बस अपने डिवाइस पर क्लाइंट ऐप डाउनलोड करें, अपने ऐपस्टोर से कुछ अन्य ऐप डाउनलोड करें, फिर यह देखने के लिए 'getInstallerPackageName()' का उपयोग करें। मेरा अनुमान है कि यह किसी भी अन्य माध्यम से स्थापित कोई भी ऐप होगा। – CommonsWare