我正在尝试构建一个从特定发件人读取SMS的程序。然后它将文本解析为一个地址。弹出窗口会自动显示地址和两个按钮,OK(取消弹出窗口)和Map(将地址发送到显示地址的MapView)。我不知道如何创建一个显示时间,地址和呼叫类型的弹出窗口。
package bkgdService;
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 int calltypeIndexA;
private String time;
private String callType;
private String location;
public void onReceive(Context context, Intent intent)
{
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
if (myBundle != null)
{
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
{
if (messages[i].getOriginatingAddress() == "messaging@iamresponding.com")
{
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
String message = messages[i].getMessageBody();
this.time = SupportMethods.findTime(message);
this.callType = SupportMethods.findCallType(message);
}
}
//ADD POPUP
}
}
}
答案 0 :(得分:0)
是的,其中许多可能会令人困惑。我会看看能不能帮忙。如果您的应用程序不是非常强大,您可以在那里发出警报。如果您认为它会变得更大,我建议您为警报/弹出窗口创建一个单独的类,并通过意图传递数据link这是一个文档中的链接,可以很好地解释如何创建自定义警报{ {3}}。您可以使用此选项创建自定义警报以进行弹出。您可以在应用程序开头声明您的消息,日期等变量,然后您可以在警报中使用它们作为TextViews在警报中显示。或者正如我所说,如果整个程序中有更多警报,您可能需要考虑为它们创建一个单独的类。希望这有帮助!