Periksa apakah perangkat Android memiliki browser yang mendukung Tab Khusus?

Jika Anda ingin mengetahui apakah browser default atau browser apa pun di perangkat mendukung Tab Khusus, gunakan bantuan getPackageName di CustomTabsClient:

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

Anda juga dapat memeriksa apakah browser di perangkat mendukung Tab Khusus:

// 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 telah memperkenalkan perubahan visibilitas paket. Jika aplikasi Android Anda menargetkan API level 30 atau yang lebih tinggi, Anda perlu menambahkan bagian kueri berikut ke AndroidManifest.xml. Jika tidak, cuplikan kode di atas tidak akan menampilkan hasil:

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