在安卓系统中处理手机关机事件

22

你能发布一个简单的代码来处理关机事件吗? 我需要清单和接收器。

我需要以下内容: 我有一个在后台运行的服务,我想要检测手机关闭以使其静音,这样可避免恼人的运营商音乐播放。

在重新启动手机后(我已经拥有开机接收器),该服务将启用手机声音。

3个回答

39

你需要在你的接收器中监听以下意图动作:

<action android:name="android.intent.action.ACTION_SHUTDOWN" />

为了让它能与某些HTC(或其他)设备兼容,这些设备提供了快速关闭电源的功能,您还需要在同一个intent-filter中包含以下操作:

<action android:name="android.intent.action.QUICKBOOT_POWEROFF" />

欲了解更多信息,请阅读此处


13
<receiver android:name=".ShutdownReceiver">
    <intent-filter>
        <action android:name="android.intent.action.ACTION_SHUTDOWN" />
        <action android:name="android.intent.action.QUICKBOOT_POWEROFF" />
    </intent-filter>
</receiver>

4
当我添加DEVICE_POWER权限时,Eclipse会告诉我:“仅系统应用程序才被授予此权限”。 - gonzobrains

3

public static final String ACTION_SHUTDOWN

广播动作:设备正在关闭。当设备被关闭(完全关闭,而不是睡眠)时,会发送此广播。一旦广播完成,最终关闭将进行,所有未保存的数据都将丢失。通常应用程序不需要处理此操作,因为前台活动也将被暂停。

这是一个受保护的意图,只能由系统发送。

常量值:"android.intent.action.ACTION_SHUTDOWN"

而此ACTION_SHUTDOWN可能因设备而异

例如HTC的是android.intent.action.QUICKBOOT_POWEROFF


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接