Я реализовал как пользовательскую вкладку Chrome, так и веб-просмотр для веб-сайта в студии Android. Они оба работают нормально. Теперь я хочу, чтобы, если у пользователя не установлен хром или его версия хрома меньше 45 (минимальная версия, необходимая для настраиваемой вкладки хрома), затем откройте класс веб-просмотра. Как проверить версию хрома или установлен хром или нет? Вот фрагмент кода, чтобы открыть пользовательскую вкладку Chrome по умолчанию
Как переключаться между настраиваемой вкладкой Chrome и веб-просмотром в Android?
Ответы (3)
Вы должны попытаться привязаться к службе, и если это не удастся, вы можете вернуться к веб-просмотру. Вы можете увидеть это здесь: https://github.com/GoogleChrome/custom-tabs-client/blob/cc6b8b9169ed7e70484bbdbbf39b672d1c4b3c80/Application/src/main/java/org/chromium/customtabsclient/MainActivity.java#L147.
person
ade
schedule
03.07.2016
public void bindCustomTabsService(Activity activity) {
if (mClient != null) return;
String packageName = CustomTabsHelper.getPackageNameToUse(activity);
if (packageName == null) return;
mConnection = new ServiceConnection(this);
CustomTabsClient.bindCustomTabsService(activity, packageName, mConnection);
}
вы можете проверить, является ли "packageName" нулевым
person
gutte
schedule
04.07.2016
Я использовал следующий код для своей цели, чтобы проверить версию Chrome, установлен ли Chrome или нет. Надеюсь поможет, надо попробовать.
String chromePackageName = "com.android.chrome";
int chromeTargetVersion = 45;
boolean isSupportCustomTab = false;
try {
PackageManager pm = getApplicationContext().getPackageManager();
List<PackageInfo> list = pm.getInstalledPackages(PackageManager.MATCH_DEFAULT_ONLY);
if (list != null && 0 < list.size()) {
for (PackageInfo info : list) {
if (chromePackageName.equals(info.packageName)) {
String chromeVersion = pm.getPackageInfo(chromePackageName, 0).versionName;
if(chromeVersion.contains(".")) {
chromeVersion = chromeVersion.substring(0, chromeVersion.indexOf('.'));
}
isSupportCustomTab = (Integer.valueOf(chromeVersion) >= chromeTargetVersion);
break;
}
}
}
} catch (Exception ex) {}
if (isSupportCustomTab) {
//Use Chrome Custom Tab
} else {
//Use WebView
}
person
mdrafiqulrabin
schedule
18.02.2017