Java 无用户界面的android短信接收和回复
我想构建一个android应用程序,它首先接收来自任意号码的消息,然后再接收来自任意号码的消息 接收消息我希望在变量中保留消息字符串和数字,然后回复消息在消息中添加一些额外的字符串到相同的“否”,无需用户界面即可自动执行。 我是android新手,所以请帮助我 只有我有接收消息代码…请给我其余代码的解决方案。 多谢各位 我的brodcost接受器课程 包com.example.broadcastreceiverJava 无用户界面的android短信接收和回复,java,android,Java,Android,我想构建一个android应用程序,它首先接收来自任意号码的消息,然后再接收来自任意号码的消息 接收消息我希望在变量中保留消息字符串和数字,然后回复消息在消息中添加一些额外的字符串到相同的“否”,无需用户界面即可自动执行。 我是android新手,所以请帮助我 只有我有接收消息代码…请给我其余代码的解决方案。 多谢各位 我的brodcost接受器课程 包com.example.broadcastreceiver import android.content.BroadcastReceive
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class IncomingSms extends BroadcastReceiver {
// Get the object of SmsManager
final SmsManager sms = SmsManager.getDefault();
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
System.out.println(phoneNumber);
System.out.println(currentMessage);
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
}
那么,您现在应该通过广播发送您的信息,您应该:
PendingIntent sentIntent; // can be null
PendingIntent deliveryIntent; // can be null
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentIntent, deliveryIntent);
您可以考虑将其放入代码> ItnService < /C>中,我不确定SDENTEXTMENT消息执行多长时间,广播不应该进行任何繁重的计算/处理。另外,将此代码放入
IntentService
,将防止android杀死你的应用程序,这一点很重要,因为你希望它在后台工作,android可能创建你的应用程序只是为了让它接收广播,而在onReceive结束后,它可能杀死你的应用程序,这项服务将延长你的应用程序寿命
PendingIntent sentIntent; // can be null
PendingIntent deliveryIntent; // can be null
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentIntent, deliveryIntent);