नीचे दिए गए सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि Android डिवाइस पर डिफ़ॉल्ट ब्राउज़र या कोई भी ब्राउज़र, कस्टम टैब के साथ काम करता है या नहीं.
देखें कि डिफ़ॉल्ट ब्राउज़र में कस्टम टैब काम करते हैं या नहीं
यह पुष्टि करने के लिए कि डिफ़ॉल्ट ब्राउज़र पर कस्टम टैब काम करते हैं या नहीं, CustomTabsClient में getPackageName मदद करने वाले तरीके का इस्तेमाल करें:
String packageName = CustomTabsClient.getPackageName( context, Collections.emptyList() ); if (packageName == null) { // Custom Tabs are not supported by the default browser } देखें कि डिवाइस पर मौजूद कोई ब्राउज़र, कस्टम टैब के साथ काम करता है या नहीं
यह पुष्टि करने के लिए कि डिवाइस पर इंस्टॉल किया गया कोई ब्राउज़र, कस्टम टैब के साथ काम करता है या नहीं, आपको उन ऐप्लिकेशन के बारे में क्वेरी करनी होगी जो VIEW इंटेंट को मैनेज कर सकते हैं. साथ ही, उनके पैकेज के नाम निकालने होंगे और CustomTabsClient में getPackageName सहायक तरीके का इस्तेमाल करना होगा:
// Get all apps that can handle VIEW intents and Custom Tab service connections. Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com")); PackageManager packageManager = context.getPackageManager(); List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(activityIntent, PackageManager.MATCH_ALL); // Extract package names from ResolveInfo objects List<String> packageNames = new ArrayList<>(); for (ResolveInfo info : resolveInfos) { packageNames.add(info.activityInfo.packageName); } // Get a package that supports Custom Tabs String packageName = CustomTabsClient.getPackageName( context, packageNames, true /* ignore default */ ); if (packageName == null) { // Custom Tabs are not supported by any browser on the device } Android 11 में पैकेज के दिखने की सेटिंग में हुए बदलाव
Android 11 में, पैकेज के दिखने की सेटिंग में बदलाव किए गए हैं. अगर आपका Android ऐप्लिकेशन, एपीआई लेवल 30 या उसके बाद के वर्शन को टारगेट करता है, तो आपको AndroidManifest.xml के क्वेरी सेक्शन में यह एलान जोड़ना होगा.
इस एलान के बिना, queryIntentActivities तरीका नतीजे नहीं दिखाएगा:
<queries> <intent> <action android:name= "android.support.customtabs.action.CustomTabsService" /> </intent> </queries> डिवाइस में कोई भी ब्राउज़र, कस्टम टैब के साथ काम नहीं करता
अगर डिवाइस में कस्टम टैब के साथ काम करने वाला कोई ब्राउज़र उपलब्ध नहीं है और customTabsIntent.launchUrl(context, url) का इस्तेमाल करके कोई यूआरएल लॉन्च किया जाता है, तो हो सकता है कि इंटेंट काम न करे. इस वजह से, ActivityNotFoundException दिख सकता है.
उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, हमेशा यह देख लें कि ऐप्लिकेशन, डिवाइस के साथ काम करता है या नहीं.
यूआरएल को किसी भी उपलब्ध ब्राउज़र में खोलने के लिए, स्टैंडर्ड ACTION_VIEW इंटेंट का इस्तेमाल किया जा सकता है.