要求:设置一个android应用程序开机启动一个服务,此服务用来监听情景模式的切换。

首先要知道在android中开机启动程序是通过广播机制实现的,在android手机启动完成之后,系统会发送一个名叫android.intent.action.BOOT_COMPLETED的广播,所以我们只要在程序中接收这个广播,然后启动一个后台服务,就会实现程序一开机即启动。

对于监听情景模式的切换,android手机跟其他手机不太一样,没有那些诸如会议模式、户外模式、自定义模式等那么多的模式。系统内置的只有正常模式跟静音模式两种可选,而且是长按关机按钮才出现的。如下图:

Android程序开机启动&&监听情景模式切换

一开始我以为系统也应该会发送一个广播,但是找了很多资料没找着。后来我从王涛那学到了一个不错的技巧。假设你现在不知道系统到底会不会发情景模式切换的广播,而且找了很多资料也没有涉及诸如此类的问题,那么现在你可以从LogCat中查看日志文件。在我点击上图中静音模式切换的按钮时,会得到如下日志:

很明显,系统是发了广播的。所以我们同样只要在程序中接收这个广播就OK了。

Demo代码如下:

MainActivity:

BroadcastReceiver:

BackgroundService:

AndroidManifest.xml:

以上代码开机启动测试成功,查看后台运行的服务(Boot_Complete):

Android程序开机启动&&监听情景模式切换

进行模式切换监听也是OK的:

Android程序开机启动&&监听情景模式切换

更多相关文章

  1. Android中应用程序drawable图片资源占用内存的统计
  2. Android中应用调用系统权限
  3. android系统构架
  4. arm-marvell-linux-gnueabi 交叉编译c/c++程序,并移植到android
  5. 面向 Android* 设备的英特尔® USB 驱动程序
  6. Android权限系统
  7. Android应用程序打包签名、加固、二次打包(图形/命令行)

随机推荐

  1. android 项目打包jar
  2. Android(安卓)Studio 打Jar包和混淆的Jar
  3. Android(安卓)RotateAnimation动画不能旋
  4. Android里遇到Debug能用,Release不能用的A
  5. Android(安卓)学习进阶之路
  6. Android之Widget (微件、小组件)
  7. 细读《深入理解 Android(安卓)内核设计思
  8. Android(安卓)Camera的预览回调接口Previ
  9. Button的高宽无故变大了!
  10. 转Android(安卓)安全攻防(三): SEAndroid(安