gpt4 book ai didi

android - 如何在android后台使用服务读取传入消息?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:17 25 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,因为我想在不知道用户的情况下读取传入消息。我想始终在后台运行传入消息检查器。如果收到新消息意味着我想阅读消息并且该消息包含一些单词(密码)意味着我想激活应用程序

请向我解释如何使用示例代码来做到这一点,因为我是 android 的新手

最佳答案

查看 BroadCastReceivers,您必须为 android.provider.Telephony.SMS_RECEIVED 实现并注册 Reciever

这是一个代码 fragment ,可让您在消息到达时阅读它们。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SMSReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
String strMessage = "";

if (myBundle != null)
{
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];

for (int i = 0; i < messages.length; i++)
{
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody();
strMessage += "\n";
}

Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
}
}
}

这里是您必须添加到 AndroidManifest.xml 文件中的内容:

<uses-permission android:name="android.permission.RECEIVE_SMS" />

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

关于android - 如何在android后台使用服务读取传入消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973985/

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