我如何使用时间选择器?

时间:2011-06-14 13:07:20

标签: android

我正在为我的应用程序使用时间选择器,该应用程序将根据特定时间发送短信。我有短信发送部分准备使用短信管理器。我还有使用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();
        }
      }
  });
}

如何在特定时间发送短信?

1 个答案:

答案 0 :(得分:1)

您需要将sendSms()方法移至服务中,然后使用AlamManager使您的服务在正确的时间被唤醒,并发送您的短信。

您需要定义服务:

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的活动或服务中进行调用。