android自带gps测试,在Android中测试GPS

我编写了一个粗糙的Java控制台应用程序来实现telnet客户端,并从坐标文件中读取.它不是最漂亮的代码,但是可以工作:

import org.apache.commons.net.telnet.TelnetClient;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintStream;

import java.text.DecimalFormat;

import java.text.NumberFormat;

public class AutomatedTelnetClient {

private TelnetClient telnet = new TelnetClient();

private InputStream in;

private PrintStream out;

private String prompt = "#";

public AutomatedTelnetClient(String server, String user, String password) {

try {

// Connect to the specified server

telnet.connect("127.0.0.1", 5554);

// Get input and output stream references

in = telnet.getInputStream();

out = new PrintStream(telnet.getOutputStream());

readUntil("OK");

sendGeoFixes("c:\junk\esk.txt");

System.out.println("Finished");

} catch (Exception e) {

e.printStackTrace();

}

}

private void delay() {

long t = System.currentTimeMillis();

long finish = t + 15000;

boolean loop = true;

while (loop) {

t = System.currentTimeMillis();

if (t > finish)

loop = false;

}

}

private void sendGeoFixes(String fn) {

boolean loop = true;

String line;

BufferedReader br = null;

String lat, lon;

String formatStr = "000.000000";

NumberFormat formatter = new DecimalFormat(formatStr);

String gf = "geo fix ";

try {

br = new BufferedReader(new FileReader(fn));

do {

try {

line = br.readLine();

if (line == null)

break;

String sa[] = line.split(",");

if (sa.length < 2)

break;

lat = sa[0];

String slat = formatter.format(Float.parseFloat(lat));

lon = sa[1];

String slon = formatter.format(Float.parseFloat(lon));

String sFix = slat + " " + slon;

write(gf + sFix);

String ans = readUntil("OK");

System.out.println(ans);

delay();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} while (loop);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public String readUntil(String pattern) {

try {

char lastChar = pattern.charAt(pattern.length() - 1);

StringBuffer sb = new StringBuffer();

char ch = (char) in.read();

while (true) {

System.out.print(ch);

sb.append(ch);

if (ch == lastChar) {

if (sb.toString().endsWith(pattern)) {

return sb.toString();

}

}

ch = (char) in.read();

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public void write(String value) {

try {

out.println(value);

out.flush();

System.out.println(value);

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

try {

AutomatedTelnetClient telnet = new AutomatedTelnetClient(

"127.0.0.1", "username", "password");

} catch (Exception e) {

e.printStackTrace();

}

}

}

“ esk.txt”文件具有以下格式:

-1.059408,54.476764

-1.056685,54.477731

-1.048233,54.479462

-1.044054,54.479968

-1.038213,54.482259

-1.034194,54.482496

-1.027904,54.480873

-1.01868,54.479361

-1.017364,54.47953

等等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值