如何使用按钮或定期将GPS数据写入文件?

时间:2013-07-30 22:55:03

标签: android

private void writeToFile(String data) {
try {
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("DataWriteTry.txt", Context.MODE_PRIVATE));
    outputStream.write(data);
    outputStreamWriter.close();
    }

我尝试了这段代码,用按钮进行数据写入但是没有用。

writeToFile(getText(loc.getAltitude()));

我用getText,String和定义的textView尝试了“writeToFile”。 如何使用按钮或每隔15分钟自动写入此数据?

4 个答案:

答案 0 :(得分:0)

您可以指定Android AlarmsTimerTask并附带Timer

答案 1 :(得分:0)

我是这样做的

            FileWriter fw = new FileWriter(Environment.getExternalStorageDirectory()+"/myfile.txt", false);
            BufferedWriter br = new BufferedWriter(fw);
            br.append(data);
            br.close();
            fw.close();

该文件保存在外部存储根目录

尝试更改此行

writeToFile(getText(loc.getAltitude()));

writeToFile(String.valueOf(loc.getAltitude()));

好的,您可以通过设置类变量

来解决这个问题
Location location = null;

然后在你的onLocationChanged回调中设置像这个

的类变量位置
this.location = loc;

然后你可以打电话

writeToFile(String.valueOf(location.getAltitude()));
来自onClick回调的

答案 2 :(得分:0)

  1. 为了获得位置,你必须等到从位置传感器拿到一个,所以它不能使用按钮。唯一类似的事情是获取已知的最后一个位置,但这可能离真实位置很远或只返回null。

  2. 为了每15分钟写一个文件,有很多方法。最简单的方法是使用AlarmManager来安排事件,并将该位置附加到文件中。

    另一种可能的方法是使用前台服务让您的应用程序保持活动状态,并且每隔15分钟就会从位置传感器请求通知新位置。

  3. 谷歌发布了一个很好的API,可以与他们的播放服务(链接here)一起使用,与使用普通的位置传感器(电池,速度,准确度......)相比,它有许多优点。

答案 3 :(得分:0)

从您的问题判断,看起来您对Android没有任何了解,并且您正在尝试制作需要中级知识的应用。无论如何,您可以在onLocationChanged中写入该文件,此方法将在requestLocationUpdates()中指定的时间和距离之后调用。