Читал смс в андроиде. Вот код, но я запутался или не совсем правильно его понимаю.
public class SMSActivity extends Activity
{
String SENT = “SMS_SENT”;
String DELIVERED = “SMS_DELIVERED”;
PendingIntent sentPI, deliveredPI;
BroadcastReceiver smsSentReceiver, smsDeliveredReceiver
@Override
public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
}
@Override
public void onResume()
{
super.onResume();
smsSentReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
switch (getResultCode())
{
case Activity.RESULT_OK: Toast.makeText(getBaseContext(), “SMS sent”, Toast.LENGTH_SHORT).show(); break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(), “Genericfailure”,Toast.LENGTH_SHORT).show(); break;
}}
};
smsDeliveredReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), “SMS delivered”, Toast.LENGTH_SHORT).show(); break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), “SMS not delivered”, Toast.LENGTH_SHORT).show(); break;
}
}
registerReceiver(smsDeliveredReceiver, new IntentFilter(DELIVERED));
registerReceiver(smsSentReceiver, new IntentFilter(SENT)); }
//button click event method
public void onClick(View v)
{ sendSMS(“5556”, “Hello my friends!”); }
private void sendSMS(String phoneNumber, String message)
{ SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}
}
Здесь у меня есть 2 ожидающих намерения: sentPI и deliveryPI, которые я использую внутри sendTextMessage (); Это означает, что я отправляю ожидающие намерения в класс smsManager.
И я зарегистрировал 2 широковещательных приемников, которые будут получать через намерение, соответствующее SMS_SENT и SMS_DELIVERED. В книге сказано, что SMS_SENT & SMS_DELIVERED будет запущен SmsManager, когда сообщение будет отправлено или доставлено. Означает ли это, что я получу намеренное сообщение SMS_SENT и SMS_DELIVERED от SmsManger? или это намерения, которые я отправляю в sendTextMessage? Смущает ..... SomeOne, плз, помогите? пожалуйста, дайте мне понять цикл?