दिलचस्प पोस्ट
जीएसएम की सूची <स्ट्रिंग> में realmList <RealmString> में क्या आप नाम या टुकड़ों के द्वारा संलग्न () या कॉल चर का उपयोग करते हैं? क्या मैं जीडीबी में 'मेमोरी एक्सेस' पर ब्रेकपॉइंट सेट कर सकता हूं? जावा में स्थिर प्रारंभकर्ता एफएफपीपीई जानकारी को मित्रवत तरीके से प्राप्त करें प्रीकंपेल्ड हेडर्स Node.js में SQL इंजेक्शन की रोकथाम क्यों क्लिक करें () के बजाय jQuery पर () का उपयोग करें पायथन में, लिनक्स में 'यूएसबी डिवाइस डाले गए' घटनाओं के लिए मैं कैसे सुन सकता हूँ? शेल कमांड को पूरा करने के लिए प्रतीक्षा करें क्या System.currentTimeMillis हमेशा एक मूल्य> = पिछले कॉल वापस करेगा? विक्रेता-विशिष्ट छद्म तत्वों / वर्गों को एक नियम सेट में जोड़ना संभव क्यों नहीं है? एक पोस्टग्रेज़ सरणी में डेटा का चयन करना JavaScript में बैकटीक प्रतीक (`) का क्या उपयोग है? एएसपी.नेट डेटटाइम पिकर

यदि कोई ऐप डाउनलोड किया गया है या नहीं, तो प्रोग्रामैटिक रूप से कैसे जांचें?

हमने प्रोग्राम को प्रोग्राम से इंस्टॉल किया है

  1. यदि एप्लिकेशन डिवाइस में पहले से इंस्टॉल है तो एप्लिकेशन स्वचालित रूप से खुला है।
  2. अन्यथा विशेष अनुप्रयोग स्थापित करें।

मेरा मार्गदर्शन करो। मुझे पता नहीं है। धन्यवाद।

Solutions Collecting From Web of "यदि कोई ऐप डाउनलोड किया गया है या नहीं, तो प्रोग्रामैटिक रूप से कैसे जांचें?"

इस के साथ प्रयास करें:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Add respective layout setContentView(R.layout.main_activity); // Use package name which we want to check boolean isAppInstalled = appInstalledOrNot("com.check.application"); if(isAppInstalled) { //This intent will help you to launch if the package is already installed Intent LaunchIntent = getPackageManager() .getLaunchIntentForPackage("com.check.application"); startActivity(LaunchIntent); Log.i("Application is already installed."); } else { // Do whatever we want to do if application not installed // For example, Redirect to play store Log.i("Application is not currently installed."); } } private boolean appInstalledOrNot(String uri) { PackageManager pm = getPackageManager(); try { pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); return true; } catch (PackageManager.NameNotFoundException e) { } return false; } } 

स्वीकार्य उत्तर की तुलना में कुछ हद तक क्लीनर समाधान ( इस प्रश्न के आधार पर):

 public static boolean isAppInstalled(Context context, String packageName) { try { context.getPackageManager().getApplicationInfo(packageName, 0); return true; } catch (PackageManager.NameNotFoundException e) { return false; } } 

मैंने इसे एक सहायक वर्ग में एक स्थिर उपयोगिता के रूप में रखा था। उपयोग का उदाहरण:

 boolean whatsappFound = AndroidUtils.isAppInstalled(context, "com.whatsapp"); 

यह जवाब दिखाता है कि ऐप अनुपलब्ध होने पर प्ले स्टोर से ऐप कैसे प्राप्त कर सकता है, हालांकि उन उपकरणों पर देखभाल की ज़रूरत होती है जिनके पास प्ले स्टोर नहीं है।

उपरोक्त कोड मेरे लिए काम नहीं कर रहा था निम्नलिखित दृष्टिकोण ने काम किया

उपयुक्त जानकारी के साथ एक आशय वस्तु बनाएं और फिर जांच लें कि आशय कैलेंबल है या निम्न फ़ंक्शन का उपयोग न करें:

 private boolean isCallable(Intent intent) { List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return list.size() > 0; } 

यदि आप पैकेज नाम जानते हैं, तो यह एक कोशिश-पकड़ने वाले ब्लॉक के बिना या पैकेजों के एक समूह के माध्यम से फिर से काम करता है:

 public static boolean isPackageInstalled(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager(); Intent intent = packageManager.getLaunchIntentForPackage(packageName); if (intent == null) { return false; } List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return list.size() > 0; } 

यह कोड यह सुनिश्चित करने के लिए जांच करता है कि ऐप इंस्टॉल है, लेकिन यह सुनिश्चित करने के लिए भी जांच करता है कि यह सक्षम है।

 private boolean isAppInstalled(String packageName) { PackageManager pm = getPackageManager(); try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); return pm.getApplicationInfo(packageName, 0).enabled; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return false; } } 

मुझे लगता है कि कोशिश / पकड़ पैटर्न का प्रयोग प्रदर्शन के लिए बहुत अच्छा नहीं है। इसका उपयोग करने के लिए मैं सलाह देता हूं:

 public static boolean appInstalledOrNot(Context context, String uri) { PackageManager pm = context.getPackageManager(); List<PackageInfo> packageInfoList = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES); if (packageInfoList != null) { for (PackageInfo packageInfo : packageInfoList) { String packageName = packageInfo.packageName; if (packageName != null && packageName.equals(uri)) { return true; } } } return false; } 

@ एगानियन हैमुत्तु का कोटलिन बी में जवाब)

  private fun isAppInstalled(context: Context, uri: String): Boolean { val packageInfoList = context.packageManager.getInstalledPackages(PackageManager.GET_ACTIVITIES) return packageInfoList.asSequence().filter { it?.packageName == uri }.any() } 

इसे इस्तेमाल करे

इस कोड का उपयोग पैकेज के नाम के साथ आपके आवेदन की जांच करने के लिए किया जाता है या नहीं, अगर नहीं तो यह आपके ऐप का प्लेस्टोर लिंक अन्यथा आपके इंस्टॉल किए गए ऐप को खोलेगा

 String your_apppackagename="com.app.testing"; PackageManager packageManager = getPackageManager(); ApplicationInfo applicationInfo = null; try { applicationInfo = packageManager.getApplicationInfo(your_apppackagename, 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } if (applicationInfo == null) { // not installed it will open your app directly on playstore startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + your_apppackagename))); } else { // Installed Intent LaunchIntent = packageManager.getLaunchIntentForPackage(your_apppackagename); startActivity( LaunchIntent ); }