我正在从事没有任何活动的服务。它只在后台工作。它接收纬度和经度并通过邮件发送。问题是程序没有发送邮件,我使用的是 Java Mail API。这是代码:
这是主要活动
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);
}
}