ज्यादातर मामलों में आप एक चेक इस के समान शामिल करके दुकान का नाम प्राप्त कर सकते हैं जबकि:
final PackageManager packageManager = getPackageManager();
try {
final ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getPackageName(), 0);
if ("com.android.vending".equals(packageManager.getInstallerPackageName(applicationInfo.packageName))) {
// App was installed by Play Store
} else if ("com.amazon.venezia".equals(packageManager.getInstallerPackageName(applicationInfo.packageName))) {
// App was installed by Amazon Appstore
} else {
// App was installed from somewhere else
}
} catch (final NameNotFoundException e) {
e.printStackTrace();
}
"com.andr oid.vending "Google Play स्टोर और है
" com.amazon.venezia "अमेज़न एपस्टोर है, और
अशक्त जब यह बीटा के दौरान साइडलोड था
परिणाम तथापि अविश्वसनीय हो सकते हैं, उदाहरण के लिए के रूप में, एक दुकान का परीक्षण यह मान सेट नहीं हो सकता है, और इसके अलावा यह संस्थापक के पैकेज का नाम है कि एक दुकान नाम के रूप में व्याख्या की जा सकती निर्दिष्ट करने अपने अनुप्रयोग में साइडलोड संभव है:
adb install -i <INSTALLER_PACKAGE_NAME> <PATH_TO_YOUR_APK>
आप विभिन्न दुकानों के लिए अलग-अलग पैकेज के नाम रखने पर विचार करने के लिए उदाहरण के लिए चाहते हो सकता है अमेज़ॅन के लिए "com.example.yourapp" और "com.example.yourapp.amazon" के लिए - आप आसानी से कर सकते हैं ily उनको अपनी ग्रैडल स्क्रिप्ट में सेट करें।
क्यों न सिर्फ विज्ञप्ति दिखा जहां यह करने के लिए अपलोड किया गया था में से प्रत्येक के भीतर एक चर है? या उपयोगकर्ता के रूप में एक विकल्पपैन है ... –
'पैकेज प्रबंधक 'और' getInstallerPackageName() 'आपको बताएगा कि इंस्टॉलर क्या था। आपको अपने विभिन्न परिदृश्यों के तहत क्या लौटाता है यह देखने के लिए प्रयोगों को चलाने होंगे। – CommonsWare
@ फ़ारन यदि आपने प्रयोग किया है तो आप किसके साथ आए थे? – ahsteele