这个应用需要网络连接的权限,因为Google
map是实时更新的么。然后是GPS传感器关于地理位置的权限。最后需要存储用户的记录点,所以有文件读写的权限。
为了记录用户记录的情景地点,我使用了XML作为存储的标准,并将文件存在了SD卡上
XML解析
网络上有很详细的各种解析方式,我采用了其中的一种。如果想了解其他的请Google。。。。。
记录地点信息,我定义了一个POJO类
1 public class RecordLocation {2 private String location_Id;3 private
String location_ring;4 private double location_latitude;5 private double
location_longitude;6 private GeoPoint point;7 ...篇幅关系,其他的略
XML的解析器,和网络上的其他文章一样就不多说了。能拿来用就成。
1 public List parse(String xml) { 2 final RecordLocation
currentMessage = new RecordLocation(); 3 RootElement root = new
RootElement("Locations"); 4 final List messages = new
ArrayList(); 5 // Element channel = root.getChild("RespInfo"); 6
Element item = root.getChild("Location"); 7 item.setEndElementListener(new
EndElementListener(){ 8 public void end() { 9
messages.add(currentMessage.copy());10 }11 });12
item.getChild("id").setEndTextElementListener(new EndTextElementListener(){13
public void end(String body) {14 currentMessage.setLocation_Id(body);15 }16
});17 item.getChild("ring").setEndTextElementListener(new
EndTextElementListener(){18 public void end(String body) {19
currentMessage.setLocation_ring(body);20 }21 });22
item.getChild("latitude").setEndTextElementListener(new23
EndTextElementListener(){24 public void end(String body) {25
currentMessage.setLocation_latitude(Double.valueOf(body));26 }27 });28
item.getChild("longitude").setEndTextElementListener(new
EndTextElementListener(){29 public void end(String body) {30
currentMessage.setLocation_longitude(Double.valueOf(body));31 }32 });33 34 try
{35 InputStream inputStream = new ByteArrayInputStream(xml.getBytes());36
Xml.parse(inputStream, Xml.Encoding.UTF_8,37 root.getContentHandler());38 }