위치가 바뀔 때마다 경도와 위도 값을 텍스트 파일에 쓰려고합니다. 그 결과는 위도와 경도 값 목록이 들어있는 SD 카드에 저장된 텍스트 파일이어야합니다. 응용 프로그램이 성공적으로 경도와 위도를 가져오고 파일이 성공적으로 저장되었다는 메시지가 튀어 나옵니다. 그러나 SD 카드의 루트에서 텍스트 파일을 찾을 수 없습니다. 어디에 위치 값을 사용하여 파일이, 그래서 기본적으로루트 SD 카드에서 .txt 파일의 위치를 찾아야합니다.
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity
{
TextView textlat;
TextView textlong;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textlat = (TextView)findViewById(R.id.textlat);
textlong = (TextView)findViewById(R.id.textlong);
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,
10000, 0, ll);
}
private class mylocationlistener implements LocationListener
{
@Override
public void onLocationChanged(Location location)
{
if (location != null)
{
double pLong = location.getLongitude();
double pLat = location.getLatitude();
textlat.setText(Double.toString(pLat));
textlong.setText(Double.toString(pLong));
try
{
File myFile = new File("/sdcard/mysdfile.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append(textlat.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),
"Done writing SD 'mysdfile.txt'",
Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onProviderDisabled(String provider)
{
}
@Override
public void onProviderEnabled(String provider)
{
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras)
{
}
}
}
: 여기
코드인가? 나는 여기에 정말로 분명한 것을 놓치고 있다고 느낍니다 ...
/SDCARD에 가이드 항목을 확인/확인 될 것입니다. Environment.getExternalStorageDirectory()를 사용하십시오 (항상 SD가 아님) –
허가를 잊지 마십시오 –
Ankit
적절한 경로를 올바르게 발견하는 것 외에도 최신 장치 , PC 로의 MTP 연결과 같은 방법으로 파일을 사용할 수 있으려면 먼저 미디어 스캐너를 호출해야한다는 것을 잊지 마십시오. –