我正在從事沒有任何活動的服務。它只在後臺工作。它接收經緯度並通過郵件發送。問題是程序沒有發送郵件,我正在使用Java Mail API。下面是代碼:從gps獲取位置併發送至郵件服務無活動
它的主要活動
public class MainActivity extends Service {
LocationManager lm;
LocationListener lis;
Location loc;
Double lat;
Double lan;
Location location;
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; // in Meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 10000; // in Milliseconds
LocationManager locationManager;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MINIMUM_TIME_BETWEEN_UPDATES,
MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
new MyLocationListener()
);
sendMail(showcurrentlocation());
}
private String showcurrentlocation() {
// TODO Auto-generated method stub
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
String message = null;
if (location != null) {
message = String.format(
"Current Location \n Longitude: %1$s \n Latitude: %2$s",
location.getLongitude(), location.getLatitude()
);
}
return message;
}
public void sendMail(String msg) {
try {
GMailSender sender = new GMailSender("user",
"password");
sender.sendMail("subject",body, "sender",
"recepients");
} catch (Exception e) {
Log.e("SendMail", e.getMessage(), e);
}
}
private class MyLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
String message = String.format(
"New Location \n Longitude: %1$s \n Latitude: %2$s",
location.getLongitude(), location.getLatitude()
);
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
}
public void onStatusChanged(String s, int i, Bundle b) {
Toast.makeText(MainActivity.this, "Provider status changed",
Toast.LENGTH_LONG).show();
}
public void onProviderDisabled(String s) {
Toast.makeText(MainActivity.this,
"Provider disabled by the user. GPS turned off",
Toast.LENGTH_LONG).show();
}
public void onProviderEnabled(String s) {
Toast.makeText(MainActivity.this,
"Provider enabled by the user. GPS turned on",
Toast.LENGTH_LONG).show();
}
}
}
另一個類廣播接收機
public class MyBroadcastReceiver extends BroadcastReceiver{
public static final String TAG = "LocationLoggerServiceManager";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent service = new Intent(context, MainActivity.class);
context.startService(service);
}
}public class MyBroadcastReceiver extends BroadcastReceiver{
public static final String TAG = "LocationLoggerServiceManager";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent service = new Intent(context, MainActivity.class);
context.startService(service);
}
}
有什麼問題?你從哪裏得到錯誤?它是編譯錯誤還是運行時錯誤?提供LOGCAT! – theAlse 2012-07-17 11:30:52