Android 短信接收和处理
Android SMS receiving and handling
我知道可以在 android 上处理传入的短信,我认为即使是初学者也能做到。但我的问题是:当设备被锁定时,该应用程序还会 运行 吗?我正在开发一个应用程序,当设备收到 SMS 时,它会向特定的电子邮件地址发送一封包含文本和发件人的电子邮件。但是,当设备在几分钟后自行锁定时,它也必须工作吗?最好的方法是什么,或者它已经通过使用 onRecieve 方法工作了吗?
感谢您的任何帮助,请善待我对编程很陌生:D
这很复杂...
一旦应用程序暂停(即:不显示在屏幕上),它可能会被 Android 系统销毁以节省电量或减少 CPU / RAM 使用。
所以:不,你不能保证应用程序仍然存在。
您可以将 BroadcastReceiver
设置为您的 AndroidManifest.xml
并在您的应用中创建 BroadcastReceiver
class。 onReceive()
方法将被调用,您在 class 中设置的代码将被执行。即使在收到短信时应用程序不是 运行。
但还有另一个问题:深度睡眠。为节省电量,Android 将在设备长时间未使用时关闭所有电池密集型系统。电池密集型系统包括:Wi-fi 和数据。 SMS 被排除在这个列表之外(但是一些构造函数可能包括一个选项来在 Deep Sleeping 时禁用 SMS 接收,在这种情况下,你没有选择,只是警告用户不要在 Deep sleeping 中禁用 SMS 接收),gracefully.
这意味着实施 onReceive()
方法是不够的。您需要唤醒设备以启用 Wifi 和数据,以便您发送电子邮件。
因此,为避免此问题,请扩展 WakefulBroadcastReceiver
。这就像一个 "normal" 广播接收器,但它会唤醒设备,并在代码完全执行后让它再次休眠。
我知道可以在 android 上处理传入的短信,我认为即使是初学者也能做到。但我的问题是:当设备被锁定时,该应用程序还会 运行 吗?我正在开发一个应用程序,当设备收到 SMS 时,它会向特定的电子邮件地址发送一封包含文本和发件人的电子邮件。但是,当设备在几分钟后自行锁定时,它也必须工作吗?最好的方法是什么,或者它已经通过使用 onRecieve 方法工作了吗? 感谢您的任何帮助,请善待我对编程很陌生:D
这很复杂...
一旦应用程序暂停(即:不显示在屏幕上),它可能会被 Android 系统销毁以节省电量或减少 CPU / RAM 使用。 所以:不,你不能保证应用程序仍然存在。
您可以将 BroadcastReceiver
设置为您的 AndroidManifest.xml
并在您的应用中创建 BroadcastReceiver
class。 onReceive()
方法将被调用,您在 class 中设置的代码将被执行。即使在收到短信时应用程序不是 运行。
但还有另一个问题:深度睡眠。为节省电量,Android 将在设备长时间未使用时关闭所有电池密集型系统。电池密集型系统包括:Wi-fi 和数据。 SMS 被排除在这个列表之外(但是一些构造函数可能包括一个选项来在 Deep Sleeping 时禁用 SMS 接收,在这种情况下,你没有选择,只是警告用户不要在 Deep sleeping 中禁用 SMS 接收),gracefully.
这意味着实施 onReceive()
方法是不够的。您需要唤醒设备以启用 Wifi 和数据,以便您发送电子邮件。
因此,为避免此问题,请扩展 WakefulBroadcastReceiver
。这就像一个 "normal" 广播接收器,但它会唤醒设备,并在代码完全执行后让它再次休眠。