GPS 位置情報を内部ファイル ストレージに保存し、必要に応じて別の方法で取得する方法に取り組んでいます。
私は Android を初めて使用するので、いくつかの方法を試しましたが、より理解しやすい FileOutput-/InputStream を使用することにしました。私は Android ロケーション API ( http://developer.android.com/reference/android/location/Location.html ) を使用しています。場所オブジェクトの保存は、技術的には文字列に書き込み、後でバイトに書き込むことで機能することは知っていますが、保存したファイルを読み込んで、保存した場所オブジェクトを返すにはどうすればよいですか?
私のコードアプローチ:
public void saveCurrentLocation(){ //method works, I can see the saved file in the file explorer
Location currentLoc = gpsClass.getCurrentLocation(); //method within gpsClass that returns current location
try {
FileOutputStream fos = openFileOutput("SaveLoc", Context.MODE_PRIVATE);
fos.write(currentLoc.toString().getBytes());
fos.close();
}
catch(Exception e) { e.printStackTrace();}
}
public void loadSavedLocation() {
Location savedLoc;
try{
BufferedReader inputReader = new BufferedReader(new InputStreamReader(openFileInput("SaveLoc")));
String inputString;
StringBuffer stringBuffer = new StringBuffer();
while((inputString = inputReader.readLine()) != null) {
stringBuffer.append(inputString);
}
gpsClass.update(??);
}
catch(Exception e) {e.printStackTrace();}
}
入力文字列の位置オブジェクトの読み出しを、タイプ Location の変数のみを受け取る "gpsClass.update()" に渡したいと思います。オブジェクトをシリアル化する必要がありますか?もしそうなら、どのようにしますか? よろしくお願いします!