In order to send the less quantity of information as posible I
recommend to use Sockets instead of REST Services or SOAP, however, it
will be much easier to use these services...

On the other hand, I think you cannot theorically do these kind of
things... because in the practice everything could not work... you
should test the code in order to see what problems you have.

On Jan 11, 1:56 am, coollearner <[email protected]> wrote:
> I want the application to send coordinates once it enters a specific
> area and will continually do that until it exit that area. My target
> area is a rectangle. I'm not that knowledgeable in communicating with
> a server. I just based my code from books and online sources. What do
> you mean by " it might be a good REST situation? (sorry i'm not
> familiar).  I  need the phone to send me the coordinates as frequent
> as possible. That's a requirement and yes the phone can be plugged in
> the car.
>
> Thanks Kristopher for the time, comment and help.
>
> On Jan 11, 11:30 am, Kristopher Micinski <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > You can check the coordinates, and see if they fit within some area,
> > right?  I assume your 'target area' is some polygon, and you simply
> > check whether your user's point is inside it.  Do you know how to
> > communicate with a server?  You can read a Java networking tutorial,
> > open up a socket and do an http post, or rest, or whatever to
> > communicate with the server.  (Since you're doing this I suppose you
> > already have one in mind, this sounds like it might be a good rest
> > situation.)
>
> > By the way, it's probably not great to send the information as often
> > as possible, that sounds like a real nice way to kill the battery..
> > Buuut, it sounds like in your particular situation you might assume
> > that the phone is plugged in (perhaps not a great assumption, but
> > whatever.)
>
> > On Tue, Jan 10, 2012 at 8:59 PM, coollearner <[email protected]> 
> > wrote:
> > > I would like to share what i have prepared so far and at the same time
> > > ask for assistance and suggestions on the next coding steps needed.
>
> > > Based from short and basic java and android training and online
> > > resources, I have come up with the following theoretical code that has
> > > the following objectives (theoretical because I didn’t test it yet):
>
> > > explicitly select the GPS provider (GPS/cell/wifi) to know the phone’s
> > > location
> > > dislays the current location in a textview
> > > connects to a server via 3g
> > > sends the latitude, longitude and timestamp as frequently as possible
> > > to a server
> > > Below is the code that I prepared:
>
> > > import android.app.Activity;
> > >  import android.content.Context;
> > >  import android.location.Criteria;
> > >  import android.location.Location;
> > >  import android.location.LocationListener;
> > >  import android.location.LocationManager;
> > >  import android.os.Bundle;
> > >  import android.telephony.TelephonyManager;
> > >  import android.util.Log;
> > >  import android.widget.TextView;
> > >  import java.io.IOException;
> > >  import java.io.PrintWriter;
> > >  import java.net.Socket;
> > >  import java.net.UnknownHostException;
>
> > >  public class GpsActivity extends Activity {
>
> > > private LocationManager lm;
> > > private LocationListener locationListener;
> > > public static TelephonyManager tm;
> > > public static TextView tv;
> > > public static Socket s;
> > > public static PrintWriter out;
>
> > > /**
> > >  * Called when the activity is first created.
> > >  */
> > > @Override
> > > public void onCreate(Bundle savedInstanceState) {
> > >    super.onCreate(savedInstanceState);
> > >  /**
> > >  * retrieve a reference to provide access to information about the
> > > telephony services on the device
> > >  */
> > >    tm = (TelephonyManager)
> > > getSystemService(Context.TELEPHONY_SERVICE);
> > >    setContentView(R.layout.main);
> > >  /**
> > >  * retrieve a reference to provide access to the system location
> > > services
> > >  */
> > > lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
>
> > > /**
> > >  * explicitly select the GPS provider, create a set of Criteria and
> > > let android choose the best provider available
> > >  */
>
> > > Criteria criteria = new Criteria();
> > > criteria.setAccuracy(Criteria.ACCURACY_FINE);
> > > criteria.setAltitudeRequired(false);
> > > criteria.setBearingRequired(false);
> > > criteria.setCostAllowed(true);
> > > criteria.setPowerRequirement(Criteria.POWER_LOW);
> > > String provider = lm.getBestProvider(criteria, true);
> > > /**
> > >  * This method takes in four parameters:
> > > provider: The name of the provider with which you register
> > > minTime: The minimum time interval for notifications, in milliseconds.
> > > minDistance: The minimum distance interval for notifications, in
> > > meters.
> > > listener: An object whose onLocationChanged() method will be called
> > > for each location update.
> > >  */
> > > locationListener = new MyLocationListener();
> > > lm.requestLocationUpdates(provider, 0, 0, locationListener);
>
> > > tv = (TextView) findViewById(R.id.textView1);
> > > tv.setText("I currently have no Location Data.");
>
> > > }
>
> > > /**
> > >  * Connects the Android Client to a given server
> > >  *
> > >  * @param name
> > >  *            The name of the remote server
> > >  * @param port
> > >  *            Port number to connect to at the remote server.
> > >  * @throws IOException
> > >  * @throws UnknownHostException
> > >  */
> > > public static void connect(String name, int port)
> > >        throws UnknownHostException, IOException
> > > {
>
> > >    s = new Socket(name, port);
> > >    out = new PrintWriter(s.getOutputStream(), true);
> > > }
>
> > > /**
> > >  * Sends a string message to the server.
> > >  *
> > >  * @param msg
> > >  *            The message to be sent.
> > >  * @throws IOException
> > >  */
> > > public static void send(String msg) throws IOException
> > > {
> > >    if (!s.isClosed() && msg != null)
> > >    {
> > >        out.println(msg);
> > >        if (msg.contains("CMD_QUIT"))
> > >        {
> > >            out.close();
> > >            s.close();
> > >            Log.i("ServerConnection", "Client Disconnected.");
> > >        }
> > >    }
> > > }
>
> > > private class MyLocationListener implements LocationListener{
>
> > >    @Override
> > >    public void onLocationChanged(Location loc) {
> > >        String txt = "Latitude:" + loc.getLatitude() + "/nLongitude:"
> > > + loc.getLongitude();
> > >        Log.i("GeoLocation", "My current location is:\n " + txt);
> > >        tv.setText("My current location is:\n" + txt);
> > >        String msg = loc.getLongitude() + "\n" + loc.getLatitude() +
> > > "\n"
> > >           + loc.getTime();
>
> > >    try
> > >        {
> > >        connect("IP address", 27960);
> > >        send("CMD_HELLO");
> > >        send(msg);
> > >        send("CMD_QUIT");
> > >        } catch (UnknownHostException e)
> > >        {
> > >            // TODO Auto-generated catch block
> > >            e.printStackTrace();
> > >        } catch (IOException e)
> > >        {
> > >            // TODO Auto-generated catch block
> > >            e.printStackTrace();
> > >        }
> > >        }
>
> > >    @Override
> > >    public void onProviderDisabled(String provider) {
> > >        // TODO Auto-generated method stub
>
> > >    }
>
> > >    @Override
> > >    public void onProviderEnabled(String provider) {
> > >        // TODO Auto-generated method stub
>
> > >    }
>
> > >    @Override
> > >    public void onStatusChanged(String provider, int status, Bundle
> > > extras) {
> > >        // TODO Auto-generated method stub
>
> > >    }
>
> > > }
>
> > > PLEASE HELP
>
> > > 1. Kindly comment if the code above will meet the four objectives
> > > given.
> > > 2. HOW CAN I MEET MY 5th objective ----- I want the android
> > > application to start to trigger connecting to server and sending the
> > > latitude and longitude only when the phone (being used in a car) is
> > > within a road area ( say an area 1km x 30m ). It is continuously
> > > listening to its location but will start sending to server once it
> > > enters the area and will continuously send and will stop only once it
> > > exit the area.
>
> > > --
> > > You received this message because you are subscribed to the Google
> > > Groups "Android Developers" group.
> > > To post to this group, send email to [email protected]
> > > To unsubscribe from this group, send email to
> > > [email protected]
> > > For more options, visit this group at
> > >http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to