extends IntentService to upload a file : Intent « Core Class « Android






extends IntentService to upload a file

    
//package backend.snippets;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.app.IntentService;
import android.app.NotificationManager;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
/**
 * @author Maurya Talisetti
 */
public class BackgroundService extends IntentService {

  private NotificationManager nm;
  private final Calendar time = Calendar.getInstance();

  private String fName;
  private String lName;
  private String phoneNumber;
  private String latitude;
  private String longitude;
  private String selectedImagePath;

  public BackgroundService() {
    super("");
  }

  @Override
  protected void onHandleIntent(Intent intent) {
    // TODO Auto-generated method stub
    fName = intent.getExtras().getString("fname");
    lName = intent.getExtras().getString("lname");
    phoneNumber = intent.getExtras().getString("phone_no");
    latitude = intent.getExtras().getString("latitude");
    longitude = intent.getExtras().getString("longitude");
    selectedImagePath = intent.getExtras().getString("selectedImagePath");
    doFileUpload();
  }

  @Override
  public void onCreate() {
    super.onCreate();

    nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    Toast.makeText(this, "Service created at " + time.getTime(),
        Toast.LENGTH_LONG).show();
    // showNotification();

  }

  @Override
  public void onDestroy() {
    super.onDestroy();
    // Cancel the persistent notification.
    // nm.cancel(R.string.service_started);
    Toast.makeText(this,
        fName + " Service destroyed at " + time.getTime() + ";",
        Toast.LENGTH_LONG).show();
  }

  public int doFileUpload() {
    int serverResponseCode = 0;
    String upLoadServerUri = "http://50.56.69.127/vas/trunk/fileupload.php";
    Date d = new Date();
    d.getTime();
    Log.i("FileUpload", "FileUpload: Time : " + d.getTime());
    upLoadServerUri = upLoadServerUri + "?fname=" + fName.toString();
    upLoadServerUri = upLoadServerUri + "&lname=" + lName.toString();
    upLoadServerUri = upLoadServerUri + "&phone_no="
        + phoneNumber.toString();
    upLoadServerUri = upLoadServerUri + "&latitude=" + latitude.toString();
    upLoadServerUri = upLoadServerUri + "&longitude="
        + longitude.toString();

    String currentTimeString = new SimpleDateFormat("yyyy-MM-dd")
        .format(new Date());
    String currentTimeString2 = new SimpleDateFormat("HH:mm:ss")
        .format(new Date());
    // Log.i("FileUpload", "FileUpload: Time : " + currentTimeString);

    upLoadServerUri = upLoadServerUri + "&dtime=" + currentTimeString + ""
        + currentTimeString2;

    // String [] string = sourceFileUri;
    // zip();
    // String fileName = _zipFile;
    String fileName = selectedImagePath;
    // String fileName2 = audioImagePath;

    // Log.i("FileUpload", "FileUpload: Image : " + selectedImagePath);
    // Log.i("FileUpload", "FileUpload: Audio : " + audioImagePath);
    HttpURLConnection conn = null;
    DataOutputStream dos = null;
    DataInputStream inStream = null;
    String lineEnd = "\r\n";
    String twoHyphens = "--";
    String boundary = "*****";
    int bytesRead, bytesAvailable, bufferSize;
    byte[] buffer;
    int maxBufferSize = 1 * 1024 * 1024;
    String responseFromServer = "";

    File sourceFile = new File(fileName);

    if (!sourceFile.isFile()) {
      Log.e("FileUpload", "FileUpload:Source File Does not exist");
      return 0;
    }

    try { // open a URL connection to the Servlet

      FileInputStream fileInputStream = new FileInputStream(sourceFile);
      URL url = new URL(upLoadServerUri);
      conn = (HttpURLConnection) url.openConnection(); // Open a HTTP
                                // connection to
                                // the URL
      conn.setDoInput(true); // Allow Inputs
      conn.setDoOutput(true); // Allow Outputs
      conn.setUseCaches(false); // Don't use a Cached Copy
      conn.setRequestMethod("POST");
      conn.setRequestProperty("Connection", "Keep-Alive");
      conn.setRequestProperty("ENCTYPE", "multipart/form-data");
      conn.setRequestProperty("Content-Type",
          "multipart/form-data;boundary=" + boundary);
      conn.setRequestProperty("uploaded_file", fileName);

      dos = new DataOutputStream(conn.getOutputStream());

      dos.writeBytes(twoHyphens + boundary + lineEnd);
      dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
          + fileName + "\"" + lineEnd);
      dos.writeBytes(lineEnd);

      bytesAvailable = fileInputStream.available(); // create a buffer of
                              // maximum size
      Log.i("FileUpload", "FileUpload: Initial .available : "
          + bytesAvailable);

      bufferSize = Math.min(bytesAvailable, maxBufferSize);
      buffer = new byte[bufferSize];

      // read file and write it into form...
      bytesRead = fileInputStream.read(buffer, 0, bufferSize);

      while (bytesRead > 0) {
        dos.write(buffer, 0, bufferSize);
        bytesAvailable = fileInputStream.available();
        bufferSize = Math.min(bytesAvailable, maxBufferSize);
        bytesRead = fileInputStream.read(buffer, 0, bufferSize);
      }

      // send multipart form data necesssary after file data...
      dos.writeBytes(lineEnd);
      dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

      // Responses from the server (code and message)
      serverResponseCode = conn.getResponseCode();
      String serverResponseMessage = conn.getResponseMessage();
      Log.i("Upload file to server", "HTTP Response is : "
          + serverResponseMessage + ": " + serverResponseCode);
      // close streams
      Log.i("Upload file to server", fileName + " File is written");
      fileInputStream.close();
      dos.flush();
      dos.close();
    } catch (MalformedURLException ex) {
      ex.printStackTrace();
      Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
    } catch (Exception e) {
      e.printStackTrace();
    }
    // this block will give the response of upload link
    try {
      BufferedReader rd = new BufferedReader(new InputStreamReader(
          conn.getInputStream()));
      String line;
      while ((line = rd.readLine()) != null) {
        Log.i("FileUpload", "FileUpload:RES Message: " + line);
      }
      rd.close();
    } catch (IOException ioex) {
      Log.e("FileUpload", "error: " + ioex.getMessage(), ioex);
    }
    // File fileDel = new File(_zipFile);
    // boolean deleted = fileDel.delete();
    // Log.e("FileUpload", "FileUpload:Delete - "+deleted);

    // Function call for notification message..

    return serverResponseCode; // like 200 (Ok)

  } // end upLoad2Server

}

   
    
    
    
  








Related examples in the same category

1.Using Intent to open other Activity
2.Create Intent to open a Uri
3.extends IntentService
4.Phone Intent
5.Map Intent
6.Market Intent
7.Load Activity with Intent
8.Using Intent to make another phone call
9.extends IntentService to create your own Intent
10.Adding data bundle to Intent
11.Using Intent to show other Activities
12.Start Intent with Utility class
13.Load library Activity with Intent
14.Capture Image with Intent
15.Intent.ACTION_MEDIA_MOUNTED
16.Using Intent to record audio
17.Video Player Intent
18.Video Capture Intent
19.Implementing an application service that will run in response to an alarm, allowing us to move long duration work out of an intent receiver.
20.Example of various Intent flags to modify the activity stack.
21.Sample code that invokes the speech recognition intent API.
22.factory class for generating various intents
23.Open Web Page Intent
24.Is Intent Available
25.start MMS Intent
26.Access the Internet
27.Pdf viewer
28.Rotation One Demo
29.Media activity