بررسی کنید که آیا یک دستگاه Android مرورگری دارد که از تب های سفارشی پشتیبانی می کند؟

اگر می‌خواهید بدانید که آیا مرورگر پیش‌فرض یا هر مرورگر روی دستگاهی از تب‌های سفارشی پشتیبانی می‌کند یا خیر، از راهنمای getPackageName در CustomTabsClient استفاده کنید:

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
}

اندروید 11 تغییرات دید بسته را معرفی کرده است. اگر برنامه Android شما سطح API 30 یا بالاتر را هدف قرار می‌دهد، افزودن بخش جستجوهای زیر به AndroidManifest.xml لازم است، در غیر این صورت قطعه کد بالا نتایجی را بر نمی‌گرداند:

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