24

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;
    }
}
Hariharan
  • 24,741
  • 6
  • 50
  • 54
user2862363
  • 241
  • 1
  • 2
  • 3

3 Answers3

33

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.

RocketSpock
  • 2,031
  • 16
  • 11
  • I have been using WebView.setPluginsEnabled() and targetSdkVersion 17 in my app(already in playstoe). Now, I am about to release it's updated version with some new features. I have set the targetSdkVersion 19 but I have compiled it successfully with android build target 4.2.2. I have verified on various versions and the build runs fine. Is there any case or concern in releasing this build ? – r.bhardwaj May 19 '14 at 08:01
11

You can check like :

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

Hope this helps.

Siddharth_Vyas
  • 9,972
  • 10
  • 39
  • 69
3

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);
        }
Ayaz Alifov
  • 8,334
  • 4
  • 61
  • 56