标题并不像我想的那样具体,所以这里有更多细节。我正在尝试创建一个应用程序,可以在驾驶时自动回复任何传入文本的消息。这个应用程序100%正在运行,感谢这个社区,但我想扩展它。我的目标是获取发件人的号码(我已经拥有此号码),然后以某种方式单独保存它,以便它连续两次(或更多)自动回复同一个人。
public class Receiver extends BroadcastReceiver {
public static String number = "";
public static String sms = "";
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs;
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
number = msgs[i].getOriginatingAddress();
sms = msgs[i].getMessageBody();
}
if (Main.serviceBroadcast) {
String sent = "SMS_SENT";
PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent(sent), 0);
SmsManager sm = SmsManager.getDefault();
if (Main.serviceReply && !number.equals("")) {
sm.sendTextMessage(number, null, Main.reply, pi, null);
Toast.makeText(context, "replied to " + number, Toast.LENGTH_SHORT).show();
}
}
}
}
}
如果您想要此计划的完整来源,请访问http://mellowdev.net
答案 0 :(得分:0)
我知道这可能不是最好的答案。但我在我的应用程序中所做的是我创建了一个存储这些数字的SQLite数据库,因为我实际上也需要它们。因此,每当收到新消息时,我只是通过数据库检查,如果数字不在数据库中,则执行SMS代码,并将其添加到数据库中。
此外,由于手机知道此人正在驾驶,您必须先进行一些切换。因此,当删除驾驶模式时,您可以删除表格中的数据。
答案 1 :(得分:0)
String number = "";
String person = "";
//Create empty list this way
ArrayList<String> phoneNumbers = new ArrayList<String>();
ArrayList<String> personNames = new ArrayList<String>();
// add them together and the number array and person array will always be in sync
// when you call them
//Add to your list this way
number.add(phoneNumbers);
personNames.add(person);
//get from your list this way for example or you can add them to a list view, etc..
// you use get to get the string stored in the list at that position.
number = phoneNumbers.get(2);
person = personNames.get(2);
//or you can do a for loop to check them all to see if they match something
for( int i = 0; i < phoneNumbers.length - 1; i++)
{
person = personNames.get(i);
if (person.matches("Nicolas")) {
// do something with it here
}
}
现在,您可以轻松保存并获取这些数组列表,查看我一年前提出的问题。 Save an ArrayList to File on android
你去吧!