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

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

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

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

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

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

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

Demo代码如下:

MainActivity:

BroadcastReceiver:

BackgroundService:

AndroidManifest.xml:

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

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

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

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

你可能感兴趣的:(android)