यह जांचें कि Android डिवाइस में ऐसा ब्राउज़र है या नहीं जिस पर कस्टम टैब काम करते हैं?

अगर आपको यह जानना है कि डिफ़ॉल्ट ब्राउज़र या डिवाइस के किसी अन्य ब्राउज़र में कस्टम टैब काम करते हैं या नहीं, तो CustomTabsClient में मौजूद getPackageName हेल्पर का इस्तेमाल करें:

String packageName = CustomTabsClient.getPackageName(
        context, 
        Collections.emptyList()
);
if (packageName == null) {
    // Custom Tabs are not supported by the default browser
}

यह भी देखा जा सकता है कि डिवाइस के किसी ब्राउज़र पर कस्टम टैब काम करते हैं या नहीं:

// 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> viewIntentHandlers = packageManager.queryIntentActivities(activityIntent, 0);
// Get a package that supports Custom Tabs
String packageName = CustomTabsClient.getPackageName(
        context, 
        viewIntentHandlers,
        true /* ignore default */
);
if (packageName == null) {
    // Custom Tabs are not supported by any browser on the device
}

Android 11 वर्शन के लिए, पैकेज के दिखने की सेटिंग में बदलाव किए गए हैं. अगर आपका Android ऐप्लिकेशन, एपीआई लेवल 30 या उससे बाद के लेवल को टारगेट कर रहा है, तो AndroidManifest.xml में ये क्वेरी सेक्शन जोड़ना ज़रूरी है. ऐसा न करने पर, ऊपर दिया गया कोड स्निपेट नतीजे नहीं दिखाएगा:

<queries>
    <intent>
        <action android:name=
            "android.support.customtabs.action.CustomTabsService" />
    </intent>
</queries>