java - Android - Programmatically Screenshot and Share to Facebook -


i have button function take screenshot , share facebook. when try in samsung jellybean os device working perfectly, when try bluestack jellybean os , cheerymobile lollipop os things not working, check logcat , see error.

my code

onclick of button call takescreenshot();

private void takescreenshot() {         date = new date();         android.text.format.dateformat.format("yyyy-mm-dd_hh:mm:ss", now);         try {             // image naming , path  include sd card  appending name choose file             string mpath = environment.getexternalstoragedirectory().tostring() + "/" + + ".jpg";             // create bitmap screen capture             view v1 = getwindow().getdecorview().getrootview();             v1.setdrawingcacheenabled(true);             bitmap bitmap = bitmap.createbitmap(v1.getdrawingcache());             v1.setdrawingcacheenabled(false);             file imagefile = new file(mpath);             fileoutputstream outputstream = new fileoutputstream(imagefile);             int quality = 100;             bitmap.compress(bitmap.compressformat.jpeg, quality, outputstream);             outputstream.flush();             outputstream.close();             sharephototofacebook(imagefile);         } catch (throwable              e.printstacktrace();         }     }   private void sharephototofacebook(file imagefile){         uri imageuri = uri.fromfile(imagefile);         try {             image = mediastore.images.media.getbitmap(this.getcontentresolver(), imageuri);         } catch (ioexception e) {             e.printstacktrace();         }          facebooksdk.sdkinitialize(getapplicationcontext());         callbackmanager = callbackmanager.factory.create();         list<string> permissionneeds = arrays.aslist("publish_actions");         //this loginmanager helps eliminate adding loginbutton ui         loginmanager = loginmanager.getinstance();         loginmanager.loginwithpublishpermissions(this, permissionneeds);         loginmanager.registercallback(callbackmanager, new facebookcallback<loginresult>() {             @override             public void onsuccess(loginresult loginresult) {                 try{                     sharephoto photo = new sharephoto.builder()                             .setbitmap(image)                             .setcaption(scorefinal)                             .build();                     sharephotocontent content = new sharephotocontent.builder()                             .addphoto(photo)                             .build();                     shareapi.share(content, null);                      final dialog dialog = new dialog(activityshare.this);                     dialog.requestwindowfeature(window.feature_no_title);                     dialog.setcontentview(r.layout.sucess_shared);                     dialog.show();                     button btnok = (button) dialog.findviewbyid(r.id.btnok);                     btnok.setonclicklistener(new button.onclicklistener() {                         @override                         public void onclick(view v) {                             dialog.dismiss();                         }                     });                 }catch (exception e){                     log.e("error on share", string.valueof(e));                 }             }              @override             public void oncancel() {                 log.w("oncancel", "canceled user");                // system.out.println("oncancel");             }              @override             public void onerror(facebookexception exception) {                 final dialog dialog = new dialog(activityshare.this);                 dialog.requestwindowfeature(window.feature_no_title);                 dialog.setcontentview(r.layout.sucess_shared);                  textview title = (textview)dialog.findviewbyid(r.id.titlesuccess);                 textview desc = (textview)dialog.findviewbyid(r.id.descriptionhere);                  title.settext("unsuccessfull");                 desc.settext("something's wrong, please check internet connection , try again.");                 dialog.show();                  button btnok = (button) dialog.findviewbyid(r.id.btnok);                 btnok.setonclicklistener(new button.onclicklistener() {                     @override                     public void onclick(view v) {                         dialog.dismiss();                     }                 });                  log.e("onerror", string.valueof(exception));                // system.out.println("onerror");             }         });     } 

logcat error

01-07 23:34:36.767 2024-2024/com.sample.app w/system.err: java.io.filenotfoundexception: /mnt/sdcard/thu jan 07 23:34:36 sgt 2016.jpg: open failed: einval (invalid argument) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ libcore.io.iobridge.open(iobridge.java:406) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ java.io.fileoutputstream.<init>(fileoutputstream.java:88) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ java.io.fileoutputstream.<init>(fileoutputstream.java:73) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ com.sample.app.activityshare.takescreenshot(activityshare.java:225) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ com.sample.app.activityshare.access$000(activityshare.java:42) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ com.sample.app.activityshare$1.onclick(activityshare.java:103) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ android.view.view.performclick(view.java:3511) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ android.view.view$performclick.run(view.java:14105) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ android.os.handler.handlecallback(handler.java:605) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ android.os.handler.dispatchmessage(handler.java:92) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ android.os.looper.loop(looper.java:137) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ android.app.activitythread.main(activitythread.java:4424) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ java.lang.reflect.method.invokenative(native method) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ java.lang.reflect.method.invoke(method.java:511) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:825) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:592) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ dalvik.system.nativestart.main(native method) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err: caused by: libcore.io.errnoexception: open failed: einval (invalid argument) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ libcore.io.posix.open(native method) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ libcore.io.blockguardos.open(blockguardos.java:110) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:     @ libcore.io.iobridge.open(iobridge.java:390) 01-07 23:34:36.787 2024-2024/com.sample.app w/system.err:   ... 16 more 

i have no idea problem.
please me. thank you!!!


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -