android - Downloaded images upload, but camera taken images won't -
i have issue photo upload app allows pick image device , upload server. have been following guide on how use android upload service library this. application works image downloaded, or did not originate phone's camera. whenever choose image camera folder or if take 1 , try go choose it, image file not show in uploads folder. hits database table, not image folder. when click on image hyperlink sent table column, says "object not found" having real trouble understanding why happening images particularly. can help?
here mainactivity code:
package com.example.stins.orbotcamera; import android.manifest; import android.app.progressdialog; import android.content.context; import android.content.dialoginterface; import android.content.intent; import android.content.pm.packagemanager; import android.database.cursor; import android.graphics.bitmap; import android.graphics.color; import android.graphics.drawable.bitmapdrawable; import android.net.uri; import android.os.asynctask; import android.os.build; import android.os.environment; import android.provider.mediastore; import android.provider.settings; import android.provider.syncstatecontract; import android.support.design.widget.coordinatorlayout; import android.support.design.widget.floatingactionbutton; import android.support.design.widget.snackbar; import android.support.v4.app.activitycompat; import android.support.v4.content.contextcompat; import android.support.v4.content.fileprovider; import android.support.v7.app.alertdialog; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.support.v7.widget.toolbar; import android.util.base64; import android.util.log; import android.view.menu; import android.view.menuinflater; import android.view.menuitem; import android.view.view; import android.widget.edittext; import android.widget.imageview; import android.widget.textview; import android.widget.toast; import net.gotev.uploadservice.multipartuploadrequest; import net.gotev.uploadservice.uploadnotificationconfig; import java.io.bytearrayoutputstream; import java.io.file; import java.io.ioexception; import java.text.simpledateformat; import java.util.date; import java.util.hashmap; import java.util.uuid; public class mainactivity extends appcompatactivity implements view.onclicklistener { private floatingactionbutton fab; private imageview imageview; private uri file; private gpstracker gps; private edittext imagecomment; private coordinatorlayout coordinatorlayout; private textview imagelat, imagelong; private string mlat, mlong; public static final string upload_url = "http:///uploadexamples/upload.php"; private bitmap bitmap; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); fab = (floatingactionbutton) findviewbyid(r.id.fab); imageview = (imageview) findviewbyid(r.id.imageview); imagecomment = (edittext) findviewbyid(r.id.imagecomment); imagelat = (textview) findviewbyid(r.id.imagelat); imagelong = (textview) findviewbyid(r.id.imagelong); fab.setonclicklistener(this); if (contextcompat.checkselfpermission(this, manifest.permission.camera) != packagemanager.permission_granted) { fab.setenabled(false); imagecomment.setenabled(false); activitycompat.requestpermissions(this, new string[]{manifest.permission.camera, manifest.permission.write_external_storage,manifest.permission.read_external_storage, manifest.permission.access_fine_location, manifest.permission.access_coarse_location}, 0); } } @override public void onrequestpermissionsresult(int requestcode, string[] permissions, int[] grantresults) { if (requestcode == 0) { if (grantresults.length > 0 && grantresults[0] == packagemanager.permission_granted && grantresults[1] == packagemanager.permission_granted) { fab.setenabled(true); imagecomment.setenabled(true); } else{ coordinatorlayout = (coordinatorlayout) findviewbyid(r.id.coordinatorlayout); final snackbar snackbar = snackbar .make(coordinatorlayout, "accept permissions use app", snackbar.length_indefinite); snackbar.setaction("ok", new view.onclicklistener() { @override public void onclick(view view) { intent = getbasecontext().getpackagemanager() .getlaunchintentforpackage( getbasecontext().getpackagename() ); i.addflags(intent.flag_activity_clear_top); startactivity(i); } }); snackbar.setactiontextcolor(color.white); view sbview = snackbar.getview(); textview textview = (textview) sbview.findviewbyid(android.support.design.r.id.snackbar_text); textview.settextcolor(color.gray); snackbar.show(); } } } public void uploadimage() { //getting name image string name = imagecomment.gettext().tostring().trim(); //getting actual path of image string path = getpath(file); //uploading code try { string uploadid = uuid.randomuuid().tostring(); //creating multi part request new multipartuploadrequest(this, uploadid, upload_url) .addfiletoupload(path, "image") //adding file .addparameter("name", name) //adding text parameter request .addparameter("latitude", mlat) .addparameter("longitude", mlong) .setnotificationconfig(new uploadnotificationconfig()) .setmaxretries(2) .startupload(); //starting upload } catch (exception exc) { toast.maketext(this, exc.getmessage(), toast.length_short).show(); } } public string getpath(uri uri) { cursor cursor = getcontentresolver().query(uri, null, null, null, null); if (cursor != null) { cursor.movetofirst(); } string document_id = null; if (cursor != null) { document_id = cursor.getstring(0); } if (document_id != null) { document_id = document_id.substring(document_id.lastindexof(":") + 1); } if (cursor != null) { cursor.close(); } cursor = getcontentresolver().query( android.provider.mediastore.images.media.external_content_uri, null, mediastore.images.media._id + " = ? ", new string[]{document_id}, null); if (cursor != null) { cursor.movetofirst(); } string path = null; if (cursor != null) { path = cursor.getstring(cursor.getcolumnindex(mediastore.images.media.data)); } if (cursor != null) { cursor.close(); } return path; } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { if (requestcode == 0 && resultcode == result_ok && data != null && data.getdata() != null) { file = data.getdata(); try { bitmap = mediastore.images.media.getbitmap(getcontentresolver(), file); imageview.setimagebitmap(bitmap); imagecomment.setvisibility(view.visible); } catch (ioexception e) { e.printstacktrace(); } } if (requestcode == 0) { gps = new gpstracker(mainactivity.this); if (resultcode == result_ok) { if (gps.cangetlocation()) { double latitude = gps.getlatitude(); double longitude = gps.getlongitude(); mlat = double.tostring(latitude); mlong = double.tostring(longitude); imagelat.settext(mlat); imagelong.settext(mlong); // \n new line //toast.maketext(getapplicationcontext(), "your location - \nlat: " + latitude + "\nlong: " + longitude, toast.length_long).show(); coordinatorlayout = (coordinatorlayout) findviewbyid(r.id.coordinatorlayout); final snackbar snackbar = snackbar .make(coordinatorlayout, "current location recorded", snackbar.length_long); snackbar.setactiontextcolor(color.white); view sbview = snackbar.getview(); textview textview = (textview) sbview.findviewbyid(android.support.design.r.id.snackbar_text); textview.setcompounddrawableswithintrinsicbounds(r.drawable.ic_location_on_white_24dp,0,0,0); textview.settextcolor(color.white); snackbar.show(); } else { // can't location. // gps or network not enabled. // ask user enable gps/network in settings. } } else if (resultcode == result_canceled) { // user cancelled image capture coordinatorlayout = (coordinatorlayout) findviewbyid(r.id.coordinatorlayout); final snackbar snackbar = snackbar .make(coordinatorlayout,"picture cancelled", snackbar.length_short); view sbview = snackbar.getview(); textview textview = (textview) sbview.findviewbyid(android.support.design.r.id.snackbar_text); textview.setcompounddrawableswithintrinsicbounds(r.drawable.ic_cancel_white_24dp,0,0,0); textview.settextcolor(color.white); snackbar.show(); } else { // failed capture image coordinatorlayout = (coordinatorlayout) findviewbyid(r.id.coordinatorlayout); final snackbar snackbar = snackbar .make(coordinatorlayout,"error taking picture", snackbar.length_short); view sbview = snackbar.getview(); textview textview = (textview) sbview.findviewbyid(android.support.design.r.id.snackbar_text); textview.setcompounddrawableswithintrinsicbounds(r.drawable.ic_error_outline_white_24dp,0,0,0); textview.settextcolor(color.white); snackbar.show(); } } } @override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getmenuinflater(); inflater.inflate(r.menu.menu_main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); switch (item.getitemid()) { case r.id.action_send: if(imageview.getdrawable()==null){ coordinatorlayout = (coordinatorlayout) findviewbyid(r.id.coordinatorlayout); final snackbar snackbar = snackbar .make(coordinatorlayout,"sorry, you'll need image that!", snackbar.length_short); view sbview = snackbar.getview(); textview textview = (textview) sbview.findviewbyid(android.support.design.r.id.snackbar_text); textview.setcompounddrawableswithintrinsicbounds(r.drawable.ic_error_outline_white_24dp,0,0,0); textview.settextcolor(color.white); snackbar.show(); } else { uploadimage(); } return true; } return super.onoptionsitemselected(item); } @override public void onbackpressed() { new alertdialog.builder(this, r.style.theme_appcompat_dialog_alert) .settitle("exit") .setmessage("are sure want close orbot camera?") .setpositivebutton("yes", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { finish(); } }) .setnegativebutton("no", null) .show(); } @override public void onclick(view v) { intent i; if(v.getid()==r.id.fab) { intent intent = new intent(); intent.settype("image/*"); intent.setaction(intent.action_get_content); startactivityforresult(intent.createchooser(intent, "select picture"), 0); } } }
Comments
Post a Comment