gpt4 book ai didi

android - 在后台收听传入的文本

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:11 26 4
gpt4 key购买 nike

我试图让我的应用程序以持久的方式监听传入的文本消息。最好的方法是什么?

目前,我有一个可用的 BroadcastReceiver,我正在尝试为我的应用程序实现本地服务。以某种方式将 BroadcastReceiver 实现到服务中是正确的做法吗?该服务会在内存不足的情况下工作吗?

最佳答案

是的,广播接收器是收听传入文本的最佳方式。如果接收到传入的短信,请使用 IntentService 进行工作,你想对接收到的短信执行的操作。你可以将传入短信的接收者注册为:

list 文件

<receiver class="SMSApp">  
<intent-filter>
<action android:value="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS" />

Java 文件

    public class SMSApp extends BroadcastReceiver{
private static final String LOG_TAG = "SMSApp";
/* package */
static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
public void onReceive(Context context, Intent intent){
if (intent.getAction().equals(ACTION)){
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]);
}
for (SmsMessage message : messages){
String strFrom = message.getDisplayOriginatingAddress();
String strMsg = message.getDisplayMessageBody();
}
}
}
}
}

第二种方式你可以注册一个ContentObserver content://sms/inbox 用于收听收件箱中的传入短信

关于android - 在后台收听传入的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10354025/

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