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

Android 如何使用按钮或定期将GPS数据写入文件?,android,Android,我尝试了这个代码,用一个按钮来写数据,但是没有成功 private void writeToFile(String data) { try { OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("DataWriteTry.txt", Context.MODE_PRIVATE)); outputStream.write(data); outputStreamWriter

我尝试了这个代码,用一个按钮来写数据,但是没有成功

private void writeToFile(String data) {
try {
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("DataWriteTry.txt", Context.MODE_PRIVATE));
    outputStream.write(data);
    outputStreamWriter.close();
    }
我用getText、String和定义的textView尝试了“writeToFile”。 如何使用按钮或每隔15分钟自动写入此数据。分钟数?

您可以指定一个或一个带伴奏的。

以下是我的操作方法

writeToFile(getText(loc.getAltitude()));
该文件保存在外部存储根目录中

试着换一行

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

可以通过设置一个类变量来解决这个问题

writeToFile(String.valueOf(loc.getAltitude()));
然后在onLocationChanged回调中,像这样设置类变量位置

Location location = null;
然后你可以打电话

this.location = loc;
从onClick回调

  • 为了得到位置,你必须等到你从位置传感器得到一个位置,所以它不能使用一个按钮按下。与此类似的唯一方法是获取已知的最后一个位置,但它可能离实际位置很远,或者只返回null

  • 为了每15分钟写入一个文件,有很多方法。最简单的方法是使用AlarmManager计划事件,并将位置附加到文件中

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

  • 谷歌已经发布了一个很好的API用于他们的播放服务(link),它比使用普通的位置传感器(电池、速度、精度等)有很多优势


  • 从你的问题来看,看起来你对Android一无所知,你正在尝试制作一款需要中级知识的应用程序。无论如何,您可以在
    onLocationChanged
    中写入文件,此方法将在
    requestLocationUpdates()
    中指定的时间和距离后调用

    谢谢,这很有帮助,但我的主要问题是如何生成代码以获取GPS高度数据。我不知道如何编写我想要的数据。因此,你必须展示你是如何获取位置信息的,一行代码不足以说明这一点,如果你能将代码发布到获取位置数据的位置,我可以查看它,并可能为你提供解决方案Public void onLocation Changed(位置loc){double Alt=loc.getAltitude();textViewAlt.setText(“高度:+Alt”);这是我获取数据并将其写入文本视图的方式。您能否将其以代码块的形式发布在您的问题中,以便其更具可读性,每个人都能立即看到。您的文本视图是否显示数据?我正在阅读如何将其放入代码块。是的,它显示数据。
    public void onLocationChanged(Location loc){
    double-Alt=loc.getAltitude();
    'textViewAlt.setText(“高度:+Alt”);“谢谢!这真的很有帮助。
    this.location = loc;
    
    writeToFile(String.valueOf(location.getAltitude()));