2012-07-17 4 views
0

나는 어떤 활동도하지 않는 서비스 중이 야. 그것만 배경에서 일하고. 위도와 경도를 받고 우편으로 보내십시오. 문제는 프로그램이 메일을 보내지 않고 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); 

     } 

} 
+0

무엇이 문제입니까? 어디서 오류가 발생합니까? 컴파일 오류 또는 런타임 오류입니까? LOGCAT을 제공하십시오! – theAlse

답변

0

당신이 언급하는 경우 위치를 업데이트 제공 this.Android을위한 방송 수신기를 쓸 필요가 없다 : 여기에 코드입니다 업데이트 된 위치를 원하는 거리/시간. 그리고 위치가 변경된 후 sendMail()이 호출 된 날씨를 확인하십시오.

+0

그것의 작동하지 않는, 문제는 그 sendMail (showcurrentlocation) proproly 아무도 나를 도와주지 않습니다. 또는 위치를 우편으로 보내주는 샘플을 보내십시오. –

+0

@PiyushSengar 메일을 보내려면 다음 링크를 참조하십시오. "http://www.mkyong.com/android/how-to-send-email-in-android/" 자바 메일 API를 사용하여 plz 링크를 읽습니다 "http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-built-in-a" – Akshay