determine If WebView Available - Android User Interface

Android examples for User Interface:WebView

Description

determine If WebView Available

Demo Code

/*//from ww w  . j a  v  a  2s .c  o m
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
//package com.java2s;
import android.content.Context;
import android.content.pm.PackageManager;

public class Main {
    private static boolean sWebViewUnavailable;

    /**
     * @param context Current Activity context, used to query the PackageManager.
     * @param t       An exception thrown by trying to invoke android.webkit.* APIs.
     */
    public static void determineIfWebViewAvailable(Context context,
            Throwable t) {
        sWebViewUnavailable = !hasWebViewFeature(context)
                && checkCauseWasUnsupportedOperation(t);
    }

    private static boolean hasWebViewFeature(Context context) {
        // Query the system property that determins if there is a functional WebView on the device.
        PackageManager pm = context.getPackageManager();
        return pm.hasSystemFeature(PackageManager.FEATURE_WEBVIEW);
    }

    private static boolean checkCauseWasUnsupportedOperation(Throwable t) {
        if (t == null)
            return false;
        while (t.getCause() != null) {
            t = t.getCause();
        }
        return t instanceof UnsupportedOperationException;
    }
}

Related Tutorials