0
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

4 に答える 4

0

ご質問の内容から判断すると、あなたは Android に関する知識がなく、中級レベルの知識が必要なアプリを作成しようとしているようです。とにかく、 でファイルに書き込むことができますonLocationChanged。このメソッドは、 で指定した時間と距離の後に呼び出されますrequestLocationUpdates()

于 2013-07-30T23:06:10.910 に答える
0

Android AlarmsまたはTimerTaskを付随する で指定できますTimer

于 2013-07-30T22:59:48.380 に答える
0

Here is how i do it

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

The file is saved in your external storage root directory

Try changing this line

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

To

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

Ok you can solve that by setting a class variable

Location location = null;

Then in your onLocationChanged callback set the class variable location like this

this.location = loc;

then you can call

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

from your onClick callback

于 2013-07-30T23:02:16.290 に答える
0
  1. 位置を取得するには、位置センサーから位置を取得するまで待つ必要があるため、ボタンを押すだけでは機能しません。これに似ている唯一のことは、既知の最後の場所を取得することですが、実際の場所から非常に離れているか、単に null を返す可能性があります。

  2. 15 分ごとにファイルに書き込むには、さまざまな方法があります。最も簡単な方法は、AlarmManager を使用してイベントをスケジュールし、場所をファイルに追加することです。

    もう 1 つの方法は、アプリを維持するフォアグラウンド サービスを用意し、位置センサーから 15 分ごとに新しい位置を通知するように要求することです。

  3. Google は、プレイ サービスで使用できる優れた API をリリースしました (ここにリンク)。これには、通常の位置センサー (バッテリー、速度、精度など) を使用するよりも多くの利点があります。

于 2013-07-30T23:03:21.147 に答える