see_you/RecordTrack.java

80 lines
1.8 KiB
Java

package org.thinkname.ap.main;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.thinkname.ap.contact.ContactLocation;
import org.thinkname.ap.contact.ContactManager;
import android.app.Activity;
import android.text.format.Time;
public class RecordTrack {
public static List<String> track=new ArrayList<String>();
private int MaxTrackNum=20;
private Time time;
private int refreshRate=5000;
private String phoneNum;
private Thread t;//记录线程
public RecordTrack(String phoneNum)
{
time=new Time("GMT+8");
this.phoneNum=phoneNum;
}
public void starTrack(){
t=new Thread(new Runnable() {
@Override
public void run() {
while(true)
{
Map<String, ContactLocation> contactLocMap = ContactManager.getInstance().getAllContactLocations();
//取到地址
double lat=contactLocMap.get(phoneNum).getLatitude();
double lng=contactLocMap.get(phoneNum).getLongitude();
if (lat!=Double.POSITIVE_INFINITY&&lng!=Double.POSITIVE_INFINITY)
{
//地点可获得
String address=Location.getAddressByLatLng(lat,lng);
//取到此时时间
//Calendar c=Calendar.getInstance();
time.setToNow();
int hour=time.hour;
int minute=time.minute;
if(track.size()<=MaxTrackNum)
{
track.add(hour+":"+minute+" IN:"+address+"(lat:"+lat+",lng:"+lng+")");
}
else
{
track.remove(0);
track.add(hour+":"+minute+" IN:"+address+"(lat:"+lat+",lng:"+lng+")");
}
}
try {
Thread.sleep(refreshRate);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
t.start();
}
public void stopTrack()
{
t.stop();
}
}