アプリ内の Web ビューに外部 URL を読み込むアクティビティがあります。Chrome のカスタム タブが利用可能になったら使用したいのですが、それらをサポートする Chrome のバージョンがない可能性があるデバイスをサポートしています。
CustomTabs がサポートされていない場合は、古いコードを使用したいのですが、サポートされている場合は CustomTabsIntent.Builder() を使用します。古いコードは、ActionBar を引き続き管理できる Activity に含まれる WebView にコンテンツをロードします。
サポートされているかどうかを教えてくれるヘルパー メソッドを書きたいのですが、方法がわかりません。開発者ページの情報はかなりスリムです: https://developer.chrome.com/multidevice/android/customtabs
バインドに成功すると、カスタム タブを安全に使用できると表示されます。これをテストするためにバインドする簡単な方法はありますか?
このように私は仮定します:
Intent serviceIntent = new Intent("android.support.customtabs.action.CustomTabsService");
serviceIntent.setPackage("com.android.chrome");
boolean customTabsSupported = bindService(serviceIntent, new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(final ComponentName componentName, final CustomTabsClient customTabsClient) {}
@Override
public void onServiceDisconnected(final ComponentName name) {}
},
Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY);
if (customTabsSupported) {
// is supported
}