Hallo,
ich habe foglenden Code:
Code
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK)
try {
// We need to recyle unused bitmaps
if (bitmap != null) {
bitmap.recycle();
}
InputStream stream = null;
try {
Bitmap bitmap = null;
stream = getContentResolver().openInputStream(
data.getData());
bitmap = BitmapFactory.decodeStream(stream);
stream.close();
this.UPLOAD_URL = Config.webSiteUrl + "?action=uploadFile&username=" + this.username + "&password=" + this.password + "&baustelleid=" + Fotos.this.baustelleid;
System.out.println("xyy: " + this.UPLOAD_URL);
bitmap = scaleDown(bitmap, Config.maxImageUploadSize, true);
if(bitmap != null) {
uploadImage(bitmap, this.UPLOAD_URL);
}
} catch (IOException e1) {
System.out.println("Fehler 2");
}
} catch (Exception e) {
System.out.println("Fehler 1");
}
if (requestCode == REQUEST_CODE2 && resultCode == Activity.RESULT_OK)
try {
// We need to recyle unused bitmaps
if (bitmap != null) {
bitmap.recycle();
}
try {
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), photoURI);
this.UPLOAD_URL = Config.webSiteUrl + "?action=uploadFile&username=" + this.username + "&password=" + this.password + "&baustelleid=" + Fotos.this.baustelleid;
bitmap = scaleDown(bitmap, Config.maxImageUploadSize, true);
if(bitmap != null) {
uploadImage(bitmap, this.UPLOAD_URL);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
System.out.println("Fehler 1");
}
super.onActivityResult(requestCode, resultCode, data);
}
public static Bitmap scaleDown(Bitmap realImage, float maxImageSize,
boolean filter) {
float ratio = Math.min(
(float) maxImageSize / realImage.getWidth(),
(float) maxImageSize / realImage.getHeight());
int width = Math.round((float) ratio * realImage.getWidth());
int height = Math.round((float) ratio * realImage.getHeight());
Bitmap newBitmap = Bitmap.createScaledBitmap(realImage, width,
height, filter);
return newBitmap;
}
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
public void onNoInternetConnection() {
Dialog dialog = new Dialog(Fotos.this);
dialog.setContentView(R.layout.dialog_no_internet);
Button btn_refresh = (Button)dialog.findViewById(R.id.btn_yes);
dialog.setCancelable(false);
dialog.show();
btn_refresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Fotos.this.timerlogout.stopTimer();
finish();
startActivity(getIntent());
}
});
}
public void uploadImage(final Bitmap bitmap, String urlString) {
//Showing the progress dialog
final DelayedProgressDialog progressDialog = new DelayedProgressDialog();
progressDialog.show(getSupportFragmentManager(), "tag");
StringRequest stringRequest = new StringRequest(Request.Method.POST, urlString,
new Response.Listener<String>() {
@Override
public void onResponse(String s) {
//Disimissing the progress dialog
//Showing toast message of the response
progressDialog.cancel();
//Toast.makeText(Fotos.this, s , Toast.LENGTH_LONG).show();
System.out.println(s);
zeigeFotosAn(Fotos.this.baustelleid);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//Dismissing the progress dialog
progressDialog.cancel();
onNoInternetConnection();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
//Converting Bitmap to String
String image = getStringImage(bitmap);
//Getting Image Name
String name = "image";
//Creating parameters
Map<String,String> params = new Hashtable<String, String>();
//Adding parameters
params.put(KEY_IMAGE, image);
params.put(KEY_NAME, name);
//returning parameters
return params;
}
};
//Creating a Request Queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
//Adding request to the queue
requestQueue.add(stringRequest);
}
Alles anzeigen
Dieser Code macht nichts anderes als folgendes:
- Button1 wrid geklickt -> Man kann ein Foto schießen -> es wird hochgeladen (das passiert im REQUEST_CODE - Bereich)
- Button2 wird geklickt -> Man kann aus der Gallerie ein Foto auswählen -> es wird hochgeladen (das passiert im REQUEST_CODE2 - Bereich)
Hochladen tut das Script mit Volley.
Mein Problem ist allerdings, dass auf manchen Geräten dasselbe Bild irgendwie 2x hochgeladen wird.
Ich kann in meinem Code keinen Bereich erkennen, der zweimal ein Bild hochlädt.
Was mache ich falsch?
Komischerweise läuft es auf meinem BQ Handy super, auf dem Lenovo Tablet nicht.