小程序闹钟专利申请

不谈环境建设,只谈发展。

开发小闹钟程序的要点是:

1,时间选择器

2.获取闹钟管理器并设置它。

3.注册广播接收机

掌握了这两点,写程序就很简单了。

1,新android项目:Alarm,SDK 2.2版,包名:com.lql.activity,主活动:Alarm。

2.编写接口:直接修改布局中的main.xml文件,代码如下:

Xml代码?

& lt?xml?version="1.0 "?编码="utf-8 "?& gt

& ltLinearLayout?xmlns:Android = "/apk/RES/Android "

android:orientation="vertical "

Android:layout _ width = " fill _ parent "

Android:layout _ height = " fill _ parent "

Android:gravity = " center _ vertical "

& gt

& lt纽扣

android:id="@+id/timeBtn "

Android:layout _ width = " fill _ parent "?

Android:layout _ height = " wrap _ content "?

android:text="@string/time "

android:textSize="20sp "

/& gt;

& lt纽扣

Android:id = " @+id/cancelAlarmBtn "

Android:layout _ width = " fill _ parent "?

Android:layout _ height = " wrap _ content "?

Android:text = " @ string/cancel alarm "

/& gt;

& lt/linear layout & gt;

该界面的效果如下:

3.要修改Alarm.java的活动,您需要在该活动中做几件事情:

在接口上获取两个按钮组件,并将事件侦听器绑定到它们。

单击第一个时间按钮,将显示时间选择器,允许您选择小时和分钟并设置闹钟。

第二个按钮,点击后需要当前设置的闹钟。

较难编写的代码是闹钟设置:

//设置时间

Java代码

timeBtn.setOnClickListener(新?按钮。OnClickListener(){

@覆盖

公共?作废?onClick(查看?arg0)?{

Log.d(标签,?“点击?那个?时间?按钮?去哪?设置?时间”);

calendar . settimeinmillis(system . current time millis());

新的?TimePickerDialog(Alarm.this,new?TimePickerDialog。OnTimeSetListener()?{

@覆盖

公共?作废?onTimeSet(TimePicker?arg0,?int?h,?int?m)?{

//更新按钮上的时间

timeBtn.setText(formatTime(h,m));

//设置日历的时间,主要是将日历的日期与当前日期同步。

calendar . settimeinmillis(system . current time millis());

//设置日历的小时和分钟。

calendar.set(日历。一天中的某个小时?h);

calendar.set(日历。分钟,?m);

//将秒和毫秒设置为0。

calendar.set(日历。第二,?0);

calendar.set(日历。毫秒,?0);

//建立Intent和PendingIntent来调用闹钟管理器。

意图?意图?=?新的?Intent(Alarm.this,alarm receiver . class);

待定内容?待定内容?=?pending content . get broadcast(alarm . this,?0,?意图?0);

//获取闹钟管理器

AlarmManager?alarmManager?=?(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);

//设置闹钟

alarmManager.set(AlarmManager。RTC_WAKEUP,?calendar.getTimeInMillis(),?pendingIntent);

alarm manager . set repeating(alarm manager。RTC_WAKEUP,?calendar.getTimeInMillis(),?10*1000,?pendingIntent);

Toast.makeText(Alarm.this,?"设置闹钟的时间是:"+string . value of(h)+":"+string . value of(m),?吐司。LENGTH_SHORT)。show();

Log.d(标签,?“设定?那个?时间?到?”+formatTime(h,m));

}

}、calendar.get(Calendar。HOUR_OF_DAY)、calendar.get(Calendar。分钟),真)。show();

}

});

代码里有注释,这里就不解释了。新时间选择器对话框是创建时间选择对话框。为了看效果,我给闹钟加了重复提醒:闹钟管理器。设置重复(报警管理器。RTC _ wakeup,日历。gettimeinmillis(),10 * 1000,待定意向);。

还要为取消警报按钮添加一个事件监听器:

Java代码

//取消报警按钮事件监控

决赛?按钮?cancelAlarmBtn?=?(Button)findViewById(r . id . cancelalarmbtn);

cancelalarmbtn . setonclicklistener(新?按钮。OnClickListener(){

@覆盖

公共?作废?onClick(查看?arg0)?{

意图?意图?=?新的?Intent(Alarm.this,alarm receiver . class);

待定内容?待定内容?=?pending content . get broadcast(alarm . this,?0,?意图?0);

//获取闹钟管理器

AlarmManager?alarmManager?=?(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);

alarm manager . cancel(pending content);

Toast.makeText(Alarm.this,?“闹钟取消了!”,?吐司。LENGTH_SHORT)。show();

}

});

点击取消闹钟按钮,取消之前设置的闹钟,核心代码为4行。

4.写一个广播接收器,用来接收闹钟的广播事件,然后进行相关处理。

Java代码

公共?班级?AlarmReceiver?延伸?广播接收器?{

/*?(非Javadoc)?

*?@看到了吗?Android . content . broadcast receiver # on receive(Android . content . context,?android.content.Intent)?

*/

@覆盖

公共?作废?onReceive(上下文?arg0,?意图?数据)?{

Log.d(报警。标签,?“那个?时间?是吗?起来,开始?那个?报警……”);

Toast.makeText(arg0,“闹钟时间到了!”,?吐司。LENGTH_SHORT)。show();

}

}

这段代码很简单,主要是为了继承?BroadcastReceiver类,然后重写onRecive方法。onRecive方法将在闹钟时间结束后执行。在这里我们可以做自己的事情,比如启动程序或者播放铃声。我只想给你一个简单的提醒,吐司是用的。

5.在android的AndroidManifest.xml文件中注册广播接收器:

& lt清单xmlns:Android = "/apk/RES/Android "

Xml代码?

package="com.ql.activity "

android:versionCode="1 "

Android:version name = " 1.0 " & gt;

& lt申请?android:icon="@drawable/icon "?Android:label = " @ string/app _ name " & gt;

& lt接收器?android:name= "。AlarmReceiver "?android:process=":remote "?/& gt;

& lt活动?android:name= "。警报”

Android:label = " @ string/app _ name " & gt;

& lt意向过滤器& gt

& lt行动?Android:name = " Android . intent . action . main "?/& gt;

& lt类别?Android:name = " Android . intent . category . launcher "?/& gt;

& lt/intent-filter & gt;

& lt/activity & gt;

& lt/application & gt;

& lt用途-sdk?android:minSdkVersion="8 "?/& gt;

& lt/manifest & gt;?

核心的配置是

接下来是在模拟器上测试,运行截图如上图。程序源代码见附件。