80 lines
1.8 KiB
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();
|
|
}
|
|
|
|
|
|
} |