怎么听的时间来改变机器人 [英] How to listen to change in time in Android
本文介绍了怎么听的时间来改变机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果手机的时间已经改变,我需要做一些动作。我怎么听时间的变化?
更具体地讲,我想发短信,当谈到具体日期用户输入。
我通过服务运行。问题的关键是,我需要经常检查,如果日期已经到了发短信
进口java.text.SimpleDateFormat的;
进口java.util.Date;
进口android.app.PendingIntent;
进口android.app.Service;
进口android.content.Intent;
进口android.os.IBinder;
进口android.telephony.gsm.SmsManager;
公共类SmsService延伸服务{
字符串日期,messege,numberphone;
@覆盖
公众的IBinder onBind(意向为arg0){
// TODO自动生成方法存根
返回null;
}
@覆盖
公众诠释onStartCommand(意向意图,诠释标志,诠释startId){
日期= intent.getStringExtra(日);
串[] dateArray = date.split(,);
日期日期时间=新的日期();
如果(dateArray [0] .equals(Integer.toString(dateTime.getDate(
)))及&安培; dateArray [1] .equals(Integer.toString(dateTime.getMonth(
)))及&安培; dateArray [2] .equals(Integer.toString(dateTime.getYear())))
sendSMS(intent.getStringExtra(numberphone),intent.getStringExtra(信息));
返回super.onStartCommand(意向,标志,startId);
}
@燮pressWarnings(德precation)
私人无效sendSMS(字符串phoneNumber的,字符串消息)
{
PendingIntent PI = PendingIntent.getActivity(此,0,
新的意图(这一点,SmsActivity.class),0);
SmsManager的短信= SmsManager.getDefault();
sms.sendTextMessage(phoneNumber的,空,消息,PI,NULL);
}
}
解决方案
创建一个动作一个BroadcastReceiver android.intent.action.TIME_SET
,并设置接收器类。
在AndroidManifest文件,
<接收机器人:名称=。MyReceiver>
<意向滤光器>
<作用机器人:名称=android.intent.action.TIME_SET/>
&所述; /意图滤光器>
< /接收器>
您的BroadcastReceiver类
MyReceiver.java
公共类MyReceiver扩展的BroadcastReceiver {
@覆盖
公共无效的onReceive(最终上下文为arg0,意图ARG1){
Log.d(MyReceiver,时间已更改);
}
}
If the phone time has changed, I need to do some actions. How do I listen for time change?
More specifically, I want to send an SMS when comes specific date that user input.
I run it through the Service. The point is I need always check if the date has come to send the SMS
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.gsm.SmsManager;
public class SmsService extends Service{
String date, messege, numberphone;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
date=intent.getStringExtra("date");
String[] dateArray = date.split(",");
Date dateTime = new Date();
if(dateArray[0].equals(Integer.toString(dateTime.getDate(
))) &&dateArray[1].equals(Integer.toString(dateTime.getMonth(
))) && dateArray[2].equals(Integer.toString(dateTime.getYear())))
sendSMS(intent.getStringExtra("numberphone"),intent.getStringExtra("message"));
return super.onStartCommand(intent, flags, startId);
}
@SuppressWarnings("deprecation")
private void sendSMS(String phoneNumber, String message)
{
PendingIntent pi = PendingIntent.getActivity(this, 0,
new Intent(this, SmsActivity.class), 0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, pi, null);
}
}
解决方案
Create a BroadCastReceiver with action "android.intent.action.TIME_SET"
and set the Receiver class.
In AndroidManifest file,
<receiver android:name=".MyReceiver">
<intent-filter >
<action android:name="android.intent.action.TIME_SET"/>
</intent-filter>
</receiver>
Your BroadCastReceiver Class
MyReceiver.java
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(final Context arg0, Intent arg1) {
Log.d("MyReceiver", "Time Changed");
}
}
这篇关于怎么听的时间来改变机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文