Ich bin neu in der Android-Programmierung. Der Quellcode, den ich eingefügt habe, ist nicht von mir selbst, sondern von einem Github-Projekt. Ich möchte die Koordinaten eines GPS-Dienstes in einer Textdatei speichern. Weiß jemand, wie man das macht?Wie bekomme ich Koordinaten von einem GPS-Dienst in eine Textdatei?
public class MainActivity extends AppCompatActivity {
private Button btn_start, btn_stop;
public Button save;
private BroadcastReceiver broadcastReceiver;
int delay = 1000; // delay for 1 sec.
int period = 10000; // repeat every 10 sec.
Timer timer = new Timer();
public EditText editText;
public TextView textView;
public String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/aaTutorial";
@Override
protected void onResume() {
super.onResume();
if(broadcastReceiver == null){
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
textView.append("\n" +intent.getExtras().get("coordinates"));
}
};
}
registerReceiver(broadcastReceiver,new IntentFilter("location_update"));
}
@Override
protected void onDestroy() {
super.onDestroy();
if(broadcastReceiver != null){
unregisterReceiver(broadcastReceiver);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_start = (Button) findViewById(R.id.button);
btn_stop = (Button) findViewById(R.id.button2);
textView = (TextView) findViewById(R.id.textView);
save = (Button) findViewById(R.id.save);
File dir = new File(path);
dir.mkdirs();
if(!runtime_permissions())
enable_buttons();
}
private void enable_buttons() {
btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i =new Intent(getApplicationContext(),GPS_Service.class);
startService(i);
}
});
btn_stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(),GPS_Service.class);
stopService(i);
}
});
}
private boolean runtime_permissions() {
if(Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},100);
return true;
}
return false;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 100){
if(grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED){
enable_buttons();
}else {
runtime_permissions();
}
}
}
}
ich die Änderungen Sie vorgeschlagen, aber ich erhalte eine Fehlermeldung: Der Versuch, virtuelle Methode ‚Leere java.io.BufferedWriter aufzurufen. schreibe (java.lang.String) 'auf eine Nullobjekt-Referenz. Dieser Fehler tritt in der try catch-Klausel bei try auf { writer.write ((String) intent.getExtras(). Get ("Koordinaten")); } catch (IOException e) { e.printStackTrace(); Dies ist für die Methode public void onReceive. – Akshay