2011-06-14 4 views
0

나는 미래에 특정 시간을 기반으로 SMS를 보내는 내 애플 리케이션을위한 시간 선택 도구를 사용하고 있습니다. 나는 sms 매니저를 사용하여 준비를 보내는 sms가있다. getCurrentHour()getCurrentMinute()을 사용하는 사용자 시간도 있습니다. 내 코드입니다시간 선택 도구는 어떻게 사용합니까?

if(phoneNo.length()>0&&message.length()>0) 
    { 
    sendSMS(phoneNo,message); 
    } 
     else   
     { 
     Toast myToast=Toast.makeText(getBaseContext(),"Please enter both phone number and message.",Toast.LENGTH_SHORT); 
     myToast.show(); 
     } 
     } 
    }); 
} 

특정 시간에 SMS를 보내려면 어떻게해야합니까?

답변

1

sendSms() 메서드를 서비스로 이동 한 다음 AlamManager 메서드를 사용하여 올바른 시간에 서비스가 깨어나고 SMS를 보내야합니다.

당신은 당신의 서비스를 정의해야합니다

class SmsService extends IntentService 
{ 
    @override 
    void onStartCommand(Intent intent, int flags, int startId) 
    { 
     String number = intent.getStringExtra("number"); 
     String message = intent.getStringExtra("message"); 

     // Send your SMS here 
    } 
} 

당신은 당신의 매니페스트에이 서비스를 선언해야합니다 :

<service android:name=".SmsService"> 
    <intent-filter> 
     <action android:name="mypackage.SEND_SMS" /> 
    </intent-filter> 
</service> 

마지막으로 당신이 깨어 것 알람을 설정해야합니다 주어진 시간에 귀하의 메시지를 보내주십시오 :

AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
Intent intent= new Intent("mypackage.SEND_SMS"); 
intent.setExtra("number", number); 
intent.setExtra("message", message); 
PendingIntent pi = PendingIntent.startService(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
mgr.set(AlarmManager.RTC_WAKEUP, time, pi); 

활동 내에서 전화해야합니다 또는 Context을 확장하거나 액세스 할 수있는 서비스.

관련 문제