यह जांचें कि 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>