android – setPluginsEnabled not exist for WebView-ThrowExceptions

Exception or error:

I’m trying to play html5 video in webview and need to setPluginsEnabled

WebView.getSettings().setPluginsEnabled

but it’s not exist for object.
what is the problem ?

this is my code:

package com.example.arachim;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

WebView view; 

//@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) 

{
    super.onCreate(savedInstanceState);

    view = new WebView(this);

    String url= new String("http://broken-links.com/tests/video/");
    WebChromeClient chromeClient = new WebChromeClient();
    WebViewClient wvc = new WebViewClient();

    view.setWebChromeClient(chromeClient);
    view.setWebViewClient(wvc);
    view.getSettings().setJavaScriptEnabled(true);
    view.getSettings().setP
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }
}
How to solve:

The function WebView.getSettings().setPluginsEnabled(); method has been deprecated since API level 9, and was removed in API level 18. You can use the newer function WebView.getSettings().setPluginState(WebSettings.PluginState.ON); which was added in API level 8 and was deprecated in API level 18. According to the WebSettings Documentation API levels beyond 18 will not support plugins; I’m assuming is because the main plugin to support was flash which adobe is no longer developing for mobile.

###

You can check like :

if (Build.VERSION.SDK_INT < 8) {
        webview.getSettings().setPluginsEnabled(true);
    } else {
        webview.getSettings().setPluginState(PluginState.ON);
    }

Hope this helps.

###

setPluginsEnabled is available for Android SDK versions less than 8, setPluginState – for SDK < 18. It is depricated for versions higher than 18, and therefore we need to use them only for only aforementioned SDKs:

 // Build.VERSION_CODES.FROYO = 8, Build.VERSION_CODES.JELLY_BEAN_MR2 = 18

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
                        webview.getSettings().setPluginsEnabled(true); 
        } 
        else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2){
                        webview.getSettings().setPluginState(WebSettings.PluginState.ON);
        }

Leave a Reply

Your email address will not be published. Required fields are marked *