Friday, March 1, 2013

Transalating Cobol code to java code


Here i am explaining convert cobol code  to java code


Using Res can achive this

First download RES from http://sourceforge.net/projects/opencobol2java/

After dowload UnZip the RES.zip file

  • After extracted the zip file then go to Cobol folder in this folder have the run.bat file.





  • copy the your cobol files to cobol folder





  • open run.bat file,copy this code java -jar ..\RES.jar -c3 -v -opt2 -dp1 -overwrite yourcobolfile >> $run.log 2>> $err.log





  • save the file





  • Run the run.bat file





  • you can see your class files in cobolprogramclasses folder orcoboldataclasses







  • Thursday, February 21, 2013

    Take Photo from Android Activity without Click Capture Button in android


    I want take photo While clicking the Html button


      manifest.xml:
    ---------------


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.asman.imagepicker"
        android:versionCode="1"
        android:versionName="1.0" >

        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />

        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.RECORD_VIDEO" />
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.WRITE_CONTACTS" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.BROADCAST_STICKY" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
         
         
                <activity
                android:name="com.asman.imagepicker.CameraActivity"
                android:label="@string/app_name" >
           
            </activity>
        </application>

    </manifest>





    Our Layout XML File


    main.xml:
    -----------



    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical" android:layout_width="fill_parent"
      android:layout_height="fill_parent" android:id="@+id/layout">
      <!-- <1> -->
      <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/app_name"
        android:textSize="24sp" />
      <!-- <2> -->

      <FrameLayout
          android:id="@+id/preview"
          android:layout_width="80dp"
          android:layout_height="80dp" >

      </FrameLayout>
      <!-- <3> -->
      <!-- <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:id="@+id/buttonClick"
        android:text="Click" android:layout_gravity="center" /> -->
    </LinearLayout>

    MainActivity.java:


    package com.asman.imagepicker;

    import org.apache.cordova.DroidGap;

    import android.os.Bundle;

    public class MainActivity  extends  DroidGap{

    @Override
     public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/SampleImage.html");

    }

    }


    Preview.java:
    ---------------


    package com.asman.imagepicker;

    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;

    import android.content.Context;
    import android.hardware.Camera;
    import android.hardware.Camera.PictureCallback;
    import android.hardware.Camera.PreviewCallback;
    import android.hardware.Camera.ShutterCallback;
    import android.util.Log;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.view.View;

    class Preview extends SurfaceView implements SurfaceHolder.Callback { // <1>
      private static final String TAG = "Preview";

      SurfaceHolder mHolder;  // <2>
      public Camera camera; // <3>
      static int i=5;
      Preview(Context context) {
        super(context);

        // Install a SurfaceHolder.Callback so we get notified when the
        // underlying surface is created and destroyed.
        mHolder = getHolder();  // <4>
        mHolder.addCallback(this);  // <5>
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); // <6>
      }

      // Called once the holder is ready
      public void surfaceCreated(SurfaceHolder holder) {  // <7>
        // The Surface has been created, acquire the camera and tell it where
        // to draw.
     
     
        camera = Camera.open(); // <8>
        try {
          camera.setPreviewDisplay(holder);  // <9>

          camera.setPreviewCallback(new PreviewCallback() { // <10>
            // Called for each frame previewed
            public void onPreviewFrame(byte[] data, Camera camera) {  // <11>
              Log.d(TAG, "onPreviewFrame called at: " + System.currentTimeMillis());
              Preview.this.invalidate();  // <12>
            }
          });
         
          this.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
     
        } catch (IOException e) { 
          e.printStackTrace();
        }
     
      }

      // Called when the holder is destroyed
      public void surfaceDestroyed(SurfaceHolder holder) {  // <14>
        camera.stopPreview();
        camera = null;
       
      }

      // Called when holder has changed
      public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // <15>
        camera.startPreview();
      }
      
      
      public void onClick(View v) { // <5>
      } 
      // Called when shutter is opened
      ShutterCallback shutterCallback = new ShutterCallback() { // <6>
        public void onShutter() {
          Log.d(TAG, "onShutter'd");
        }
      };

      // Handles data for raw picture
      PictureCallback rawCallback = new PictureCallback() { // <7>
        public void onPictureTaken(byte[] data, Camera camera) {
          Log.d(TAG, "onPictureTaken - raw");
        }
      };

      // Handles data for jpeg picture
      PictureCallback jpegCallback = new PictureCallback() { // <8>
        public void onPictureTaken(byte[] data, Camera camera) {
          FileOutputStream outStream = null;
          try {
            // Write to SD Card
            outStream = new FileOutputStream(String.format("/sdcard/%d.jpg",
                System.currentTimeMillis())); // <9>
            outStream.write(data);
            outStream.close();
            Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
          } catch (FileNotFoundException e) { // <10>
            e.printStackTrace();
          } catch (IOException e) {
            e.printStackTrace();
          } finally {
          }
          Log.d(TAG, "onPictureTaken - jpeg");
          
        }
      };

    }






    Open java Webapplication from java standlone application



    I want open my java webaaplication from mian class.
    esaily we can do following code




    public class openWebapplication{
     
      public static void main(String args[])
      {
     String url = "http://localhost:2020/ICD_18_02";
     String os = System.getProperty("os.name").toLowerCase();
            Runtime rt = Runtime.getRuntime();
     
     try{
     
         if (os.indexOf( "win" ) >= 0) {
     
             // this doesn't support showing urls in the form of "page.html#nameLink" 
             rt.exec( "rundll32 url.dll,FileProtocolHandler " + url);
     
         } else if (os.indexOf( "mac" ) >= 0) {
     
             rt.exec( "open " + url);
     
                } else if (os.indexOf( "nix") >=0 || os.indexOf( "nux") >=0) {
     
             // Do a best guess on unix until we get a platform independent way
             // Build a list of browsers to try, in this order.
             String[] browsers = {"epiphany", "firefox", "mozilla", "konqueror",
                            "netscape","opera","links","lynx"};
     
             // Build a command string which looks like "browser1 "url" || browser2 "url" ||..."
             StringBuffer cmd = new StringBuffer();
             for (int i=0; i<browsers.length; i++)
                 cmd.append( (i==0  ? "" : " || " ) + browsers[i] +" \"" + url + "\" ");
     
             rt.exec(new String[] { "sh", "-c", cmd.toString() });
     
               } else {
                    return;
               }
           }catch (Exception e){
         return;
           }
          return;  
     
    }

    Monday, February 18, 2013

    Get spring bean objects With java code


    Here My applicationContext.xml:






    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>

    <!-- ...............DATASOURCE CONFIGURATION BEGIN.............. -->
    <bean id="itDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="net.sourceforge.jtds.jdbc.Driver" />
    <!-- <property name="jdbcUrl"
       value="jdbc:jtds:sqlserver://XXXXX/ICD_TOOL_SCHEMA" /> -->

    <property name="jdbcUrl"
       value="jdbc:jtds:sqlserver://XXX/ICD_TOOL_SCHEMA" />

    <property name="properties">
    <props>
    <prop key="c3p0.acquire_increment">10</prop>
    <prop key="c3p0.idle_test_period">100</prop>
    <prop key="c3p0.max_size">500</prop>
    <prop key="c3p0.max_statements">0</prop>
    <prop key="c3p0.min_size">10</prop>
    <prop key="c3p0.timeout">120</prop>
    <prop key="c3p0.testConnectionOnCheckout">true</prop>
    <prop key="c3p0.maxConnectionAge">14400</prop>
    <prop key="c3p0.maxIdleTime">10000</prop>
    <prop key="c3p0.maxIdleTimeExcessConnections">120</prop>
    <!-- <prop key="user">asmanicd</prop>
    <prop key="password">asman.123</prop> -->
    <prop key="user">icddev</prop>
    <prop key="password">icddev</prop>

    </props>
    </property>
    </bean>
    <bean id="icdDatabase" class="com.asman.itrans.action.OrganizationsAction">
    <property name="asmanDataSource" ref="itDataSource"/>
    </bean>
    <!--
      .........................DATASOURCE CONFIGURATION
      END..................
     -->

    <!--
      .......................HIBERNATE CONFIGURATION BEGIN.................
     -->
    <bean id="itSessionFactory"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="itDataSource" />
    <property name="annotatedClasses">

    <list>
    <value>com.asman.itrans.to.common.Users</value>
    <value>com.asman.itrans.to.common.Icd10DrgMapper</value>
    <value>com.asman.itrans.to.common.FinancialReport</value>
    <value>com.asman.itrans.to.common.Icd10ReimbursementMap</value>
    <value>com.asman.itrans.to.common.MasterNoMap</value>
    <value>com.asman.itrans.to.common.UserType</value>


    </list>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect</prop>
    <!-- <prop key="hibernate.show_sql">true</prop> -->
    <!--  <prop key="hibernate.cache.provider_class"> net.sf.ehcache.hibernate.EhCacheProvider</prop>
    <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
    <prop key="hibernate.cache.provider_configuration_file_resource_path">/WEB-INF/classes/ehcache.xml</prop> -->
    </props>
    </property>
    </bean>
    <!-- ............. HIBERNATE CONFIGURATION END................ -->

    <!-- .................. ACTION *** BEGIN....................... -->
    <bean id="importAction" class="com.asman.itrans.action.ImportDataAction"
      singleton="false">
    <property name="organizationService" ref="organizationService">
    </property>
    <property name="serviceLineService" ref="serviceLineService">
    </property>  
    </bean>
    <bean id="loginAction" class="com.asman.itrans.action.LoginAction">

    <property name="usersService" ref="usersService">
    </property>

    <property name="organizationService" ref="organizationService">
    </property>

    <property name="loginService" ref="loginService">
    </property>

    <property
                name="databaseService"
                ref="databaseService" >
    </property>


    </bean>

    <
       
         
       
         


     <!--
      ................... ACTION *** END...............................
     -->

    <!-- SERVICE *** BEGIN -->
    <!-- <bean id="importservice" class="com.asman.itrans.service.ImportDataService"
      singleton="false">
    <property name="importdao" ref="importdao"></property>
    <property name="sessionFactory" ref="itSessionFactory"></property>
    </bean> -->
    <bean id="loginService" class="com.asman.itrans.service.LoginService">

    <property name="usersHome" ref="usersHome">
    </property>

    <property name="sessionFactory" ref="itSessionFactory">
    </property>
    </bean>

    <bean id="usersService" class="com.asman.itrans.service.UsersService">

    <property name="usersHome" ref="usersHome">
    </property>

    <property name="sessionFactory" ref="itSessionFactory">
    </property>
    </bean>

    <bean id="adminService" class="com.asman.itrans.service.AdminService">

    <property name="usersHome" ref="usersHome">
    </property>

    <property name="sessionFactory" ref="itSessionFactory">
    </property>
    </bean>

    <
         

         
     <!-- SERVICE *** END -->

    <!-- ...........DAO *** BEGIN................................ -->
    <!--  <bean id="importdao" class="com.asman.itrans.dao.ImportDataDao" /> -->

    <bean id="usersHome" class="com.asman.itrans.common.dao.UsersHome" />

    <bean id="organisationHome" class="com.asman.itrans.common.dao.OrganisationHome" />

    <bean id="serviceLineHome" class="com.asman.itrans.common.dao.ServiceLineHome" />


    <!-- ..... DAO *** END...... -->

    </beans>





    Now We want get any spring bean object.just integrate this code

    YourJava Class:

    ApplicationContext appContext = new ClassPathXmlApplicationContext();
    Resource resource;
    resource = appContext.getResource("classpath:/applicationContext.xml");

    XmlBeanFactory factory = new XmlBeanFactory(resource);

    System.out.println(factory.getBean("icdDatabase"));


    Here We get OrganizationsAction object
    OrganizationsAction orgaction=(OrganizationsAction)factory.getBean("icdDatabase")

    Here we get OrganizationService object
    OrganizationService source = (OrganizationService) factory
    .getBean("organizationService");

    like we will get any object from spring application context




    </div>

    Thursday, February 7, 2013

    Call JavaScript inside WebView from Android activity, with parameter passed.




    Sending Values Android Activity to Javascript have two solutiions

    they are  1).Using Webview Object
                  2).Using loadUrl Method



    Solutions 1:

    send values from Android activity to javascript function it is not difficult.just follow these steps

    Step1: First create webview object in android layout
    ------
               
    main.xml:     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                         xmlns:tools="http://schemas.android.com/tools"
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
                         tools:context=".BeWithMeActivity" >
    <!-- Here created webview object-->
                      <WebView
                       android:id="@+id/webview"
                       android:layout_width="fill_parent"
                       android:layout_height="fill_parent" />
        
                      <TextView
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_centerHorizontal="true"
                       android:layout_centerVertical="true"
                       android:text="@string/hello_world" />

                   </RelativeLayout>


    ------

    Step2:
                         Below code configured where we want call the javascript function

    package com.asman.bwithme;
    import org.apache.cordova.DroidGap;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.webkit.WebView;
    import android.support.v4.app.NavUtils;

    public class MainActivity extends DroidGap {

    public WebView myWebView ;
     static String message;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Intent intent = getIntent();
            message = intent.getStringExtra(GCMIntentService.EXTRA_MESSAGE);
            System.out.println("message:::"+message);
            setContentView(R.layout.activity_main);
          //This code related calling javascript function
            myWebView = (WebView) findViewById(R.id.webview);
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.loadUrl("file:///android_asset/www/pushnotification.html");
            final MyJavaScriptInterface myJavaScriptInterface = new MyJavaScriptInterface(this);
            
       myWebView.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");
          
        
       }
       /** Responsible to call java script method
        * 
        *
        *
        */
       public class MyJavaScriptInterface {
       Context mContext;

          MyJavaScriptInterface(Context c) {
              mContext = c;
          }
      
          public void showToast(){
           System.out.println(message);
           myWebView.loadUrl("javascript:callFromActivity('" + message + "');");
          
              
          }
         
        
      }
    }



                 Here created Html page and javascript function

    pushnotification.html:


    step3:
    ---------------------
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Push Notification</title>
    <script type="text/javascript" src="js/cordova-2.0.0.js"></script>
    <script type="text/javascript" src="jquery.mobile-1.2.0/js/jquery.js"></script>
    <script type="text/javascript" src="jquery.mobile-1.2.0/js/jquery.mobile-1.2.0.js"></script>
    <script type="text/javascript" src="js/push.js"></script>
    <link rel="stylesheet" href="jquery.mobile-1.2.0/css/jquery.mobile.structure-1.2.0.css" />       
            <link rel="stylesheet" href="jquery.mobile-1.2.0/css/jquery.mobile-1.2.0.css" />
          <link rel="stylesheet" href="css/main.css" />  
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places">



    function sendGcmIdToJS(){
    AndroidFunction.showToast();
    }

    function callFromActivity(msg) {
    //$("#mydiv").prepend(msg);
    //document.getElementById("mydiv").value = msg;
     gcmId = id;
    }




    </script> 
           
    </head>
    <body onload="sendGcmIdToJS()">
    <header class="title"> Banner </header>
    <div data-role="button" data-inline="true" data-theme="b" class="role" onclick="accept()">Accept</div><br>
    <!-- <p id="mydiv">data from notification::</p> -->
    <input type="text" id="mydiv" style="width: 500px;height: 30px;"/>
    <div data-role="button" data-inline="true" data-theme="b" class="role" onclick="denny()">Denny</div><br> 
    <div id="dvTraceMap"></div>
    </body>
    </html>



    Solution2:
    -------------


    Using super.loadUrl() method we can achive this functionality



    My Activity.java:
    ----------------------


    import org.apache.cordova.DroidGap;

    import android.os.Bundle;

    import android.view.Menu;

    public class MainActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

                 String Data="sending values to javascript";
      super.loadUrl("file:///android_asset/www/uploadPhoto.html?param="+Data);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }
    }


    uploadPhoto.html:
    --------------------------



    <!DOCTYPE html>

    <html>

    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Vote My Paint</title>
    <script src="jquery.mobile-1.2.0/js/jquery.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/cordova-2.0.0.js"></script>
    <!-- <script type="text/javascript" src="js/analytics.js"></script> -->

    <link href="css/style_ipad.css" rel="stylesheet" type="text/css" />

    <!-- <script type="text/javascript" charset="utf-8" src="js/InAppPurchaseManager.js"></script>
            <script type="text/javascript" charset="utf-8" src="js/asmanPlugin.js"></script> -->


    <script type="text/javascript">
    function pathInfoFromActivity()
              {
            var data=  getURLParameters("param");
    alert(data);

               }


           function getURLParameters(paramName) 
    {
    var sURL = window.document.URL.toString();
    if (sURL.indexOf("?") > 0)
    {
    var arrParams = sURL.split("?"); 
    var arrURLParams = arrParams[1].split("&");
    var arrParamNames = new Array(arrURLParams.length);
    var arrParamValues = new Array(arrURLParams.length);
    var i = 0;
    for (i=0;i<arrURLParams.length;i++)
    {
    var sParam =  arrURLParams[i].split("=");
    arrParamNames[i] = sParam[0];
    if (sParam[1] != "")
    arrParamValues[i] = unescape(sParam[1]);
    else
    arrParamValues[i] = "No Value";
    }
    for (i=0;i<arrURLParams.length;i++)
    {
       if(arrParamNames[i] == paramName){
    //alert("Param from activity:"+arrParamValues[i]);
    return arrParamValues[i];
    }
    }
    return "No Parameters Found";
    }
    }

    </script>
    </head>

    <body onload="pathInfoFromActivity()">
    </body>
    </html>










    Wednesday, January 30, 2013

    HTML5 video tag in my Phone gap Android application


    Here I am successfully running HTML5 <video> tag in my Phone gap Android application…
    First thing here I succeeded in Android 3.2 version

    There are two ways for running video by using <video> tag




    1)      By using StrobeMediaPlayer

    2)      Without any Player 

    1)      Using StrobeMediaPlayer

    For that I followed these steps.

    1)      Download the StrobeMediaPlayer from the internet
    2)      Findout the lib folder in ur downloaded zip file, that lib folder contains two folders (jquery , jscolor) and required js and css files
    3)      Then add the lib folder in ur www folder



    Required js files:
    1)Profiles.js(Required)
    2)devicedetection.js(Required)

    3)jquery-1.5.1.min.js(Required)

    4)jquery-ui-1.8.14.custom.min.js(optional) it displays video time

    5)jquery.strobemediaplaybackhtml5.js(Required)

    6)StrobeMediaPlayer.js(Required)

    index.html

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Device Detection Test</title>
    <style type="text/css">
    body {
     font-family: sans-serif;
    }
    
    .movie {
     width: 100%;
     clear: both;
    }
    
    .movie div.thumb {
     float: left;
     margin-right: 10px;
     cursor: pointer;
     border: solid 1px blue;
    }
    
    .movie div.details {
     width: 100%;
     height: 100%;
    }
    
    .movie div.details p.title {
     font-weight: bold;
     cursor: pointer;
    }
    
    .movie div.details p.desc {
     font-weight: normal;
    }
    </style>
    <link type="text/css" rel="stylesheet"
     href="lib/jquery.strobemediaplaybackhtml5.css" />
    
    <script type="text/javascript" src="lib/profiles.js"></script>
    <script type="text/javascript" src="lib/devicedetection.js"></script>
    <script type="text/javascript" src="lib/jquery/jquery-1.5.1.min.js"></script>
    <script type="text/javascript" src="lib/jquery-ui-1.8.14.custom.min.js"></script>
    <script type="text/javascript"
     src="lib/jquery.strobemediaplaybackhtml5.js"></script>
    <script type="text/javascript" src="lib/StrobeMediaPlayer.js"></script>
    <script>
     var movies = [
       {
        "flashvars" : {
         "poster" : "http://www.osmf.org/dev/1.6gm/images/poster1.png",
         "src" : "http://players.edgesuite.net/videos/big_buck_bunny/bbb_448x252.mp4"
        },
        "element" : "clipContainer0"
       }, ];
     $(function() {
      for (i = 0; i < movies.length; i++) {
       strobeMediaPlayback.flashvars(movies[i]["flashvars"]);
       strobeMediaPlayback.draw(movies[i]["element"]);
      }
     });
    </script>
    </head>
    <body>
     <div>Strobe Media Playback</div>
     <div id="movie0" class="movie">
      <div class="thumb">
       <div id="clipContainer0"></div>
      </div>
      <div class="details">
       <p class="title">Video One</p>
       <p class="desc">Video one description.</p>
      </div>
     </div>
    
    </body>
    </html>
    



    ----------------------END OF index.html --------------------

    Then add these two classes in your source folder

    1)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    package com.phonegap.plugins.aVideo;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import vPlayer.VideoPlayer;
    import android.content.Intent;
    import android.util.Log;
    import com.phonegap.api.Plugin;
    import com.phonegap.api.PluginResult;
    
    public class AVideo extends Plugin {
    
        /**
         * Executes the request and returns PluginResult.
         *
         * @param action        The action to execute.
         * @param args          JSONArry of arguments for the plugin.
         * @param callbackId    The callback id used when calling back into JavaScript.
         * @return              A PluginResult object with a status and message.
         */
        public PluginResult execute(String action, JSONArray args, String callbackId) {
            PluginResult.Status status = PluginResult.Status.OK;
            String result = "";
    
            try {
                if (action.equals("showVideo")) {
                    result = this.showVideo(args.getString(0));
                    if (result.length() > 0) {
                        status = PluginResult.Status.ERROR;
                    }
                }
                return new PluginResult(status, result);
            } catch (JSONException e) {
                return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
            }
        }
    
        /**
         * Identifies if action to be executed returns a value and should be run synchronously.
         *
         * @param action    The action to execute
         * @return          T=returns value
         */
        public boolean isSynch(String action) {
            return false;
        }
    
        /**
         * Called by AccelBroker when listener is to be shut down.
         * Stop listener.
         */
        public void onDestroy() {
        }
    
        //--------------------------------------------------------------------------
        // LOCAL METHODS
        //--------------------------------------------------------------------------
    
        /**
         * Display a video with the specified name.
         *
         * @param videoName     The video to load.
         * @return              "" if ok, or error message.
         */
        public String showVideo(String videoName) {
         Log.d("logicmax", videoName);
         try {
                Intent intent = null;
                    intent = new Intent().setClass(this.ctx, VideoPlayer.class);
                   
                    intent.putExtra("Nme", videoName);
                    
                this.ctx.startActivity(intent);
                return "";
            } catch (android.content.ActivityNotFoundException e) {
                Log.d("logicmax","error");
             return e.toString();
                
            }
        }
    
    }
    


    --------------------------END OF AVIDEO.JAVA-----------------------

    2)

      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    package vPlayer;
    
    import nl.webkrackt.test.R;
    import android.app.Activity;
    import android.media.MediaPlayer;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.MediaController;
    import android.widget.VideoView;
    
    
    public class VideoPlayer extends Activity implements   MediaPlayer.OnErrorListener, MediaPlayer.OnCompletionListener {
      private VideoView mVideoView;
      private String Chemin;
      private int videoPosition;
      
     @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
       
      requestWindowFeature(Window.FEATURE_NO_TITLE);
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      
      setContentView(R.layout.lv);
      mVideoView = (VideoView)findViewById(R.id.videoView);
         mVideoView.setOnErrorListener(this);
         mVideoView.setOnCompletionListener(this);
    
            Bundle returnData = (Bundle) getLastNonConfigurationInstance();
         if (returnData == null) {
          Bundle Params = getIntent().getExtras ();
          String pth = Params.getString("Nme");
          if(pth!=null)
           Chemin = "android.resource://"+getPackageName() +"/raw/" + pth;
          else
           finish();
           
           MediaController mediaController = new MediaController(this);
           mediaController.setAnchorView(mVideoView);
           mVideoView.setVideoURI(Uri.parse(Chemin));
           mVideoView.setMediaController(mediaController);
           mVideoView.requestFocus();
           //mVideoView.start();
         
         }
         else
         {
                 Chemin = returnData.getString("LOCATION");
                 videoPosition = returnData.getInt("POSITION");
                 MediaController mediaController = new MediaController(this);
                 mediaController.setAnchorView(mVideoView);          
           mVideoView.setMediaController(mediaController);
                 mVideoView.setVideoURI(Uri.parse(Chemin));
                 mVideoView.seekTo(videoPosition);
                 
         }
     }
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK ) {
             finish();
             return true;
         }
         return super.onKeyDown(keyCode, event);
     }
    
    
     @Override
     protected void onPause() {
      super.onPause();
    
      if (mVideoView!=null) {
        synchronized (mVideoView) {
         mVideoView.pause();     
       }
       
      }
      
     }
      @Override
      protected void onResume() {
       super.onResume();
    
       if (mVideoView!=null) {
         synchronized (mVideoView) {
          mVideoView.start();  
          setVisible(true);      
        }
        
       }
    
      
     }
      @Override
         public Object onRetainNonConfigurationInstance() {         
             videoPosition = mVideoView.getCurrentPosition();
             Bundle data = new Bundle();
             data.putString("LOCATION", Chemin);
             data.putInt("POSITION", videoPosition);
             return data;
         }
      
      @Override
      protected void onSaveInstanceState(Bundle outState) {
       super.onSaveInstanceState(outState);
        videoPosition = mVideoView.getCurrentPosition();
              Bundle data = new Bundle();
              data.putString("LOCATION", Chemin);
              data.putInt("POSITION", videoPosition);
      }
      
         public boolean onError(MediaPlayer player, int arg1, int arg2) {         
             finish();
             return false;
         }
      public void onCompletion(MediaPlayer mp) {
          finish();
      }
    }
    


    -------------------*END OF VIDEOPLAYER.JAVA*--------------------

    Then add these two line in your Activity class after the super.loadUrl();

    WebSettings settings = appView.getSettings();
    settings.setPluginState(PluginState.ON);

    4)Copy the below code and paste in StrobeMediaPlayer.js

    var strobeMediaPlayback = function () {
     alert("StrobeMediaPlayBack first");
     var settings = {
      "tablet": {
       "startSize": {"width":480, "height":268},
       "wmode": "direct"
      },
      "smartphone": {
       "startSize": {"width":120, "height":67},
       "wmode": "direct"
      },
      "default": {
       "startSize": {"width":480, "height":268},
       "wmode": "direct"
      }
     };
     
     var flashvars = {};
     
     function getSettingByDeviceType(setting, deviceType, defaultValue) {
      if (deviceType in settings) {
       return (settings[deviceType][setting] ? settings[deviceType][setting] : defaultValue);
      }
      else {
       return (settings["default"][setting] ? settings["default"][setting] : defaultValue);
      }
     }
     
     return { 
      settings: function(object) {
       settings = $.extend(true, settings, object);
      },
      flashvars: function(object) {
       flashvars = $.extend(true, flashvars, object);
      },
      draw: function(element) {
       if (element && flashvars && flashvars["src"]) {
        var agent = window.location.hash.replace(/^#/, "");
    
        function onDeviceDetection(device) {
         var startSize = getSettingByDeviceType("startSize", device.getProfile().type, "");
      var html5divs = '<div class="html5player">' + '<div class="errorwindow"></div>' +'<div class="controls">' +'<div class="icon playtoggle">Play/Pause</div>' +'<div class="timestamp current">0:00</div>' +'<div class="progress">' +'<a class="slider"></a>' +'<div class="tracks">' +'<div class="seeking"></div>' +  '<div class="played"></div>' +'<div class="buffered"></div>' + '</div>' +'</div>' +'<div class="timestamp duration">0:00</div>' +'<div class="icon fullview">Full View</div>' +'</div>' +'<video width="500" height="400" preload="none" poster="' + flashvars["poster"] + '">' +'<source src="http://players.edgesuite.net/videos/big_buck_bunny/bbb_448x252.mp4" />' +'</video>'+ '</div>';
    
    $("#" + element).html(html5divs);
    $("#" + element + " .html5player").strobemediaplaybackhtml5();
      }
    new DeviceDetection(agent).addCallback(onDeviceDetection).addProfiles(profiles).detect();
       }
      }
     }
    }();
    


    ---------------------END OF StrobeMediaPlayer.js---------------------------

    5)AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="nl.webkrackt.test"
        android:versionCode="1"
        android:versionName="1.0" >
        
        <supports-screens
                    android:largeScreens="true"
                    android:normalScreens="true"
                    android:smallScreens="true"
                    android:resizeable="true"
                    android:anyDensity="true"
                    />
            <uses-permission android:name="android.permission.CAMERA" />
            <uses-permission android:name="android.permission.VIBRATE" />
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
            <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
            <uses-permission android:name="android.permission.READ_PHONE_STATE" />
            <uses-permission android:name="android.permission.INTERNET" />
            <uses-permission android:name="android.permission.RECEIVE_SMS" />
            <uses-permission android:name="android.permission.RECORD_AUDIO" />
            <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
            <uses-permission android:name="android.permission.READ_CONTACTS" />
            <uses-permission android:name="android.permission.WRITE_CONTACTS" />   
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
        <uses-sdk android:minSdkVersion="7" />
    
        <application android:icon="@drawable/icon"
            android:label="@string/app_name"
            android:hardwareAccelerated="true" >
            <activity
                android:name=".VideoTestActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name="com.phonegap.DroidGap" android:label="@string/app_name"
       android:configChanges="orientation|keyboardHidden" >
       <intent-filter>
       </intent-filter>
      </activity>
      <activity android:name="vPlayer.VideoPlayer" android:label="@string/app_name"></activity>
        </application>
    
    </manifest>
    


    -------------------END OF ANDROIDMANIFEST.XML-------------------------


    Observe above xml file addded android:hardwareAccelerated="true"  attribute in ur < application> tag



    1) Without any Player


    Here I don’t want to use any player for running html5 video tag for that I do the following steps

    1)change the androidManifest.xml file

    a)      In androidManifest.xml file i added the android:hardwareAccelerated=”true” for <application> tag
    b)      Added code for doing PluginState True in Java file
    The following code is added in java file after the super.loadUrl();

    WebSettings settings = appView.getSettings();
    settings.setPluginState(PluginState.ON);