gpt4 book ai didi

android - 远程激活 android 服务 - 即使在锁定的设备上

转载 作者:行者123 更新时间:2023-11-30 03:43:47 28 4
gpt4 key购买 nike

我正在开发一种安全应用程序,它将远程触发(通过短信)。我的问题是:即使手机处于锁定状态,确保我的激活短信也能激活服务的最佳方法是什么?我不想让用户耗尽电池电量,通常应用程序什么都不做,只有在它被激活时才会这样做。

最佳答案

最好的方法是使用 list 中声明的​​广播接收器 + intentservice 来执行您想要的操作。

在 list 中声明接收者:

<receiver android:name="yourpackege.YourReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>

接收者:

public class YourReceiver extends BroadcastReceiver {
.
.
.
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++)
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
notifyMessages(context, messages);
}
}

并且在 notifyMessages 中触发执行实际工作的 intentservice。这样,广播接收器将在获取消息的时间执行。通过这种方式,您不会弄乱电池,而只会在手机收到短信时运行一些代码。

private void notifyMessages(Context c, SmsMessage[] messages) {
Log.d("SMS", "Received message");
for(SmsMessage m : messages){
if(isActivationMessage(m){
Intent serviceIntent = new Intent(c, YourIntentService.class);
serviceIntent.putExtra(); // Put all your extras here
c.startService(myServiceIntent);
}

关于android - 远程激活 android 服务 - 即使在锁定的设备上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322734/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com