Próbowałem wysłać sms za pośrednictwem zamiar z tym kodem:Wysyłanie wiadomości SMS za pośrednictwem intencyjny i wiedzieć, czy SMS został wysłany lub nie
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("smsto:" + phoneNumber));
intent.putExtra("address", phoneNumber);
intent.putExtra("sms_body", messageBody);
intent.putExtra("exit_on_sent", true);
startActivityForResult(intent, CODE);
Następnie, chcę wiedzieć, czy SMS został wysłany czy nie i używam tego kodu:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
case CODE:
if (resultCode == Activity.RESULT_OK)
{
//Then do...
}
elseif(resultCode == Activity.RESULT_CANCELED)
{
// Do...
}
break;
}
}
Chodzi o to, wynik jest zawsze 0 (Activity.RESULT_CANCELED), nawet jeśli SMS został wysłany. Skąd mam wiedzieć, czy SMS został wysłany, czy nie? Chcę korzystać z domyślnej aplikacji SMS telefonu, a nie tworzyć interfejsu do wysyłania SMS-ów.
Tak rzeczywiście trzeba odbiornik do monitorowania stanu wiadomości! – Pavlos
http://mobiforge.com/design-development/sms-messaging-android – Pavlos
Korzystanie z programu BroadcastReceiver, jak pokazano w podanym linku @Pavlos, działa tylko wtedy, gdy aplikacja wysyła SMS sam. Nie zadziała, jeśli użyjesz intencji do uruchomienia innej aplikacji, aby wysłać wiadomość. Możesz jednak zrobić to, co chcesz, używając 'ContentObserver'. –