Android开发之实现对闹钟Alarm的控制
2014-04-20 20:38
519 查看
随着可穿戴及其他一些辅助设备的出现,在这些设备上实现对Android手机的控制就有了需求,如下图。
Android 闹钟应用是在packages/apps/DeskClock下面,查看相关代码发现,闹钟响起的时候会启动一个叫AlarmActivity的类,而这个类注册Receiver来接受广播。
action字符串的定义:
receiver的注册:
Receiver的处理动作:
发送相应广播就可以实现闹钟的Snooze和Dismiss。
那可穿戴设备如何获取手机上闹钟的状态呢? 其实也是通过接受广播来实现:
上面第一条是闹钟响起,第二条就是闹钟被操作。 注册相应的Receiver即可。
Android 闹钟应用是在packages/apps/DeskClock下面,查看相关代码发现,闹钟响起的时候会启动一个叫AlarmActivity的类,而这个类注册Receiver来接受广播。
action字符串的定义:
// AlarmActivity listens for this broadcast intent, so that other applications // can snooze the alarm (after ALARM_ALERT_ACTION and before ALARM_DONE_ACTION). public static final String ALARM_SNOOZE_ACTION = "com.android.deskclock.ALARM_SNOOZE"; // AlarmActivity listens for this broadcast intent, so that other applications // can dismiss the alarm (after ALARM_ALERT_ACTION and before ALARM_DONE_ACTION). public static final String ALARM_DISMISS_ACTION = "com.android.deskclock.ALARM_DISMISS";
receiver的注册:
IntentFilter filter = new IntentFilter(AlarmService.ALARM_DONE_ACTION); filter.addAction(ALARM_SNOOZE_ACTION); filter.addAction(ALARM_DISMISS_ACTION); registerReceiver(mReceiver, filter);
Receiver的处理动作:
private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.v("AlarmActivity - Broadcast Receiver - " + action); if (action.equals(ALARM_SNOOZE_ACTION)) { snooze(); } else if (action.equals(ALARM_DISMISS_ACTION)) { dismiss(); } else if (action.equals(AlarmService.ALARM_DONE_ACTION)) { finish(); } else { Log.i("Unknown broadcast in AlarmActivity: " + action); } } };
发送相应广播就可以实现闹钟的Snooze和Dismiss。
那可穿戴设备如何获取手机上闹钟的状态呢? 其实也是通过接受广播来实现:
// A public action send by AlarmService when the alarm has started. public static final String ALARM_ALERT_ACTION = "com.android.deskclock.ALARM_ALERT"; // A public action sent by AlarmService when the alarm has stopped for any reason. public static final String ALARM_DONE_ACTION = "com.android.deskclock.ALARM_DONE";
上面第一条是闹钟响起,第二条就是闹钟被操作。 注册相应的Receiver即可。
相关文章推荐
- Android开发之实现对闹钟Alarm的控制
- 【源码】实现Android闹钟功能使用HTML+JS,并附带Alarm代码分享
- Android手机闹钟服务AlarmManagerk开发案例
- Android开发学习之闹钟功能的简单实现
- 用HTML+JS实现Android闹钟功能,附带Alarm代码分享
- 【源码】实现Android闹钟功能使用HTML+JS,并附带Alarm代码分享
- Android Alarm manager 定时闹钟开发详解
- Android开发实现popupWindow弹出窗口自定义布局与位置控制方法
- Android网络开发回顾之旅 ① 在Android手机集成使用MQTT协议 ,实现搞掂移动控制硬件端。(附带Demo)
- Android Alarm manager 定时闹钟开发详解
- Android实现闹钟,通过AlarmManager+BroadcastReceiver(广播)
- 只需java编程,就可实现工业自动化控制的Android工业平板电脑开发
- Android开发模板------ViewPager(三):实现无限循环、可嵌套RecyclerView、可控制滑动速度
- Android开发——弹性滑动的两种实现方式
- 【android开发】手机应用管理器的实现之实现popupWindow类对话框(二)
- android开发——用GridView实现省市县三级联动
- Android Studio NDK开发——三步实现HelloWorld一篇就够了
- [置顶] 【Android应用开发】-(18)静默方式实现批量安装卸载应用程序
- Android开发-进阶:Json字符串转换为java对象的各种实现方法[json_lib框架、Gson、org.json]
- Android开发实现新浪账号授权登录的功能