cordova - Android phone gap app restarts on image upload from camera -


this code

   package com.sp.spandroid;      import android.app.activity;     import android.app.notification;     import android.app.notificationmanager;     import android.app.pendingintent;     import android.content.context;     import android.content.intent;     import android.net.uri;     import android.os.build;     import android.os.bundle;     import android.os.environment;     import android.os.parcelable;     import android.provider.mediastore;     import android.util.log;     import android.webkit.consolemessage;     import android.webkit.valuecallback;     import android.webkit.webchromeclient;     import android.widget.toast;      import org.apache.cordova.*;      import java.io.file;      public class cordovaapp extends cordovaactivity     {         private jsbridge jsbridge;        // public static activity activity;         public static valuecallback<uri> muploadmessage;         private uri mcapturedimageuri = null;         @override         public void oncreate(bundle savedinstancestate)         {             super.oncreate(savedinstancestate);             super.init();           //  activity = this;             // set <content src="index.html" /> in config.xml             log.d("spandroid/cordovaapp/oncreate==>","oncreate !!");             jsbridge = new jsbridge(this, super.appview);             super.appview.addjavascriptinterface(jsbridge, "jsbridge");             super.appview.getsettings().setjavascriptenabled(true);             super.appview.getsettings().setloadwithoverviewmode(true);              super.appview.getsettings().setallowfileaccess(true);             if(build.version.sdk_int >= build.version_codes.jelly_bean_mr1){                 super.appview.getsettings().setmediaplaybackrequiresusergesture(false);             }              loadurl(launchurl);             cordovainterface cdv = (cordovainterface)getcontext();             super.appview.setwebchromeclient(new cordovachromeclient(cdv,super.appview) {                 // openfilechooser android 3.0+                 public void openfilechooser(valuecallback<uri> uploadmsg, string accepttype) {                      cordovaapp.muploadmessage = uploadmsg;                     log.d("spandroid/cordovaapp/openfilechooser==>","accepttype ==>"+ accepttype);                     try {                           file imagestoragedir = new file(                                 environment.getexternalstoragepublicdirectory(                                         environment.directory_pictures)                                 , "sp");                          if (!imagestoragedir.exists()) {                             // create androidexamplefolder @ sdcard                             imagestoragedir.mkdirs();                         }                         intent = new intent(intent.action_get_content);                         i.addcategory(intent.category_openable);                          if(accepttype.equals("video/*")){                             log.d("spandroid/cordovaapp/openfilechooser==>","inside video ==>"+ accepttype);                             i.settype("video/*");                             file file = new file(                                     imagestoragedir + file.separator + "video_"                                             + string.valueof(system.currenttimemillis())                                             + ".3gp");                             final intent captureintent = new intent(                                     mediastore.action_video_capture);                             mcapturedimageuri = uri.fromfile(file);                             captureintent.putextra(mediastore.extra_output, mcapturedimageuri);                             intent chooserintent = intent.createchooser(i, "file chooser");                              // set camera intent file chooser                             chooserintent.putextra(intent.extra_initial_intents                                     , new parcelable[] { captureintent });                             log.d("spandroid/cordovaapp/openfilechooser==>","openfilechooser 11 !!");                             this.cordova.getactivity().startactivityforresult(chooserintent, filechooser_resultcode);                         }else {                             // create camera captured image file path , name                             file file = new file(                                     imagestoragedir + file.separator + "img_"                                             + string.valueof(system.currenttimemillis())                                             + ".jpg");                              mcapturedimageuri = uri.fromfile(file);                             // camera capture image intent                             final intent captureintent = new intent(                                     android.provider.mediastore.action_image_capture);                              captureintent.putextra(mediastore.extra_output, mcapturedimageuri);                             i.settype("image/*");                             intent chooserintent = intent.createchooser(i, "file chooser");                              // set camera intent file chooser                             chooserintent.putextra(intent.extra_initial_intents                                     , new parcelable[] { captureintent });                             log.d("spandroid/cordovaapp/openfilechooser==>","openfilechooser 11 !!");                             this.cordova.getactivity().startactivityforresult(chooserintent, filechooser_resultcode);                         }                         // create file chooser intent                         } catch (exception e) {                         toast.maketext(getbasecontext(), "camera exception:" + e, toast.length_long).show();                     }                 }                  // android < 3.0                 @suppresswarnings("unused")                 public void openfilechooser(valuecallback<uri> uploadmsg) {                     openfilechooser(uploadmsg, "");                 }                  // android  > 4.1.1                 @suppresswarnings("unused")                 public void openfilechooser(valuecallback<uri> uploadmsg, string accepttype, string capture) {                     openfilechooser(uploadmsg, accepttype);                 }                   public boolean onconsolemessage(consolemessage cm) {                     onconsolemessage(cm.message(), cm.linenumber(), cm.sourceid());                     return true;                 }                  public void onconsolemessage(string message, int linenumber, string sourceid) {                     log.d("spandroid", "spandroid: " + message);                 }             });          }             @override         protected void onactivityresult(int requestcode, int resultcode, intent intent) {             log.d("spandroid/cordovaapp/onactivityresult==>","resultcode ==>"+resultcode);             log.d("spandroid/cordovaapp/onactivityresult==>","muploadmessage ==>"+ cordovaapp.muploadmessage);            // log.d("spandroid/cordovaapp/onactivityresult==>","intent.getdata() ==>"+intent.getdata());             // todo auto-generated method stub             if(requestcode==cordovachromeclient.filechooser_resultcode)             {                  if (null ==  cordovaapp.muploadmessage) {                     return;                 }                  uri result=null;                  try{                     if (resultcode != result_ok) {                         cordovaapp.muploadmessage.onreceivevalue(null);                         return;                     } else {                          // retrieve private variable if intent null                         result = intent == null ? mcapturedimageuri : intent.getdata();                     }                 }                 catch(exception e)                 {                   //  toast.maketext(getapplicationcontext(), "activity :"+e, toast.length_long).show();                 }                 log.d("spandroid/cordovaapp/onactivityresult==>","result ==>"+result);                 cordovaapp.muploadmessage.onreceivevalue(result);                 cordovaapp.muploadmessage = null;              }         }      } 

onactivityresult gettting cordovaapp.muploadmessage null. app restarting when choose image camera , not able upload image. happening phones only. phones moto-e moto-g showing upload issues


Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -