GPS를 통해 받은 데이터를 내부 파일로 저장해서 컴퓨터에서 열람할 수 있도록 만드는 프로그램입니다.
그런데 휴대폰이랑 컴퓨터랑 연결했을 때 data\org.techtown.drawer\files에 파일이 저장되지 않아서 질문 올립니다.
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment3, container, false);
bt2 = rootView.findViewById(R.id.button2);
textView = rootView.findViewById(R.id.textView);
textView.setMovementMethod(new ArrowKeyMovementMethod());
bt2.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.R)
@Override
public void onClick(View v) {
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
LocationManager manager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
GPSListener gpsListener = new GPSListener(manager);
long minTime = 10000;
float minDistance = 0;
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, gpsListener);
}
});
return rootView;
}
private class GPSListener implements LocationListener {
LocationManager manager;
public GPSListener(LocationManager manager) {
this.manager = manager;
}
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onLocationChanged(Location location) {
String message = "경도 : " + location.getLongitude() + "\n위도 : " + location.getLatitude() + "\n정확도 : " + location.getAccuracy() + "\n위성수" + usedSatellites + "\n";
textView.append(message);
String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String contents = "Log 생성 : "+now+"\n" + message;
String inputData = contents;
try {
FileOutputStream fos = getContext().openFileOutput("data.txt", Context.MODE_APPEND);
PrintWriter writer = new PrintWriter(fos);
writer.println(inputData);
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
};
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
그리고 버튼을 눌렀을 때 글자가 시작에서 멈춤으로 바뀌면서 파일저장이 시작되고, 멈춤을 누르면 종료되는 프로그램을 만들고 싶었는데 if (bt2.getText().toString == "시작" ) 이런 식으로 조건을 주면 글자가 변하지 않습니다.
저 앱을 2번째로 실행했을 때에는 data2라는 이름으로 저장을 하기 위해서는 어떻게 해야하나요?