M
mpmxxd
Neues Mitglied
- 0
Hallo liebe Mitglieder,
ich bin neu hier, und habe mich ehrlich gesagt bis jetzt nur durch Webtutorials meines Wissens bemächtigt und Foren vermieden. Nun aber habe ich mich zuerst für diese Website entschieden - und bedanke mich im Voraus für eure Antworten
:
Ich habe folgenden Code auf meinem Motorola mit Android 4.1 compiliert und ausgeführt. Den ersten Toast-Text gibt er noch aus, aber es scheint als würde der Alarm nicht beim BroadcastReceiver ankommen - der zweite Toast erscheint nicht. Kein Fehler laut Eclipse im Code - auch keine Warnung:
Das ist die MainActivity.java:
und das ist die Manifest:
Vielen Dank im Voraus
mpmxxd
ich bin neu hier, und habe mich ehrlich gesagt bis jetzt nur durch Webtutorials meines Wissens bemächtigt und Foren vermieden. Nun aber habe ich mich zuerst für diese Website entschieden - und bedanke mich im Voraus für eure Antworten

Ich habe folgenden Code auf meinem Motorola mit Android 4.1 compiliert und ausgeführt. Den ersten Toast-Text gibt er noch aus, aber es scheint als würde der Alarm nicht beim BroadcastReceiver ankommen - der zweite Toast erscheint nicht. Kein Fehler laut Eclipse im Code - auch keine Warnung:
Das ist die MainActivity.java:
Code:
package de.mp.locapp;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity
{
double longitude;
double latitude;
final static private long ONE_SECOND = 1000;
//final static private long ONE_HOUR = ONE_SECOND * 3600;
PendingIntent pi;
BroadcastReceiver br;
AlarmManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText("Syncronizing Location..");
pi = PendingIntent.getService(this, 0, new Intent("de.mp.locapp"),PendingIntent.FLAG_UPDATE_CURRENT);
am = (AlarmManager) (getSystemService(Context.ALARM_SERVICE));
Toast.makeText(MainActivity.this, "Location updating", Toast.LENGTH_SHORT).show();
am.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 20*ONE_SECOND, pi);
final LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
final LocationListener locListener = new LocationListener() {
@Override
public void onLocationChanged(Location arg0)
{
Location lastLocation = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
latitude = lastLocation.getLatitude();
longitude = lastLocation.getLongitude();
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0)
{
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2)
{
// TODO Auto-generated method stub
}
};
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,15,20,locListener);
registerReceiver(br, new IntentFilter("de.mp.locapp"));
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
Toast.makeText(MainActivity.this, "Location updated", Toast.LENGTH_LONG).show();
String sLongLat = Double.valueOf(longitude).toString()+", "+Double.valueOf(latitude).toString();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File("/storage/sdcard0/","longlatGPS.txt"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.write(sLongLat.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}
}
und das ist die Manifest:
Code:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Vielen Dank im Voraus
mpmxxd