Ten artykuł w prosty sposób wyjaśnia wiadomości SMS / MMS w systemie Android, zawiera prosty przykład kodu do wysyłania i odbierania wiadomości SMS: codeproject.com/Articles/1044639/ ...
dziękuję za twój kod. i chcę dodać, ponieważ muszę umieścić mój predefiniowany tekst. Mam to rozwiązanie Intent intent = new Intent (Intent.ACTION_VIEW, Uri.parse ("sms:" + phoneNumber)); intent.putExtra ("sms_body", wiadomość); startActivity (intencja);
djk
1
jak ustawić "phoneNumber" z listy kontaktów?
Saeed M.,
@djk dzięki, chcę przeczytać wszystkie kontakty i chcę mieć własną stronę do wysyłania smsów z funkcją automatycznego uzupełniania, ale nie jestem w stanie odczytać kontaktów w żadnym dobrym samouczku?
Guru
Do tego celu użyłbym domyślnego widżetu tworzenia wiadomości sms. po prostu zostaw pusty numer telefonu (to opcjonalne)
shem
1
Cześć. Chcę wysłać SMS-y masowe. jak 10000 smsów wysłanych jednym kliknięciem. Czy to możliwe ? Słyszałem, że Android wysyła 30 smsów co 30 minut. plz help me
Vrajesh
151
To zadziałało dla mnie.
publicvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.main);Button btnSendSMS =(Button) findViewById(R.id.btnSendSMS);
btnSendSMS.setOnClickListener(newView.OnClickListener(){publicvoid onClick(View v){
sendSMS("5556","Hi You got a message!");/*here i can send message to emulator 5556. In Real device
*you can change number*/}});}//Sends an SMS message to another deviceprivatevoid sendSMS(String phoneNumber,String message){SmsManager sms =SmsManager.getDefault();
sms.sendTextMessage(phoneNumber,null, message,null,null);}
Pytanie dotyczy wyświetlenia wiadomości SMS w standardowym widoku tworzenia. To jest dokładnie odwrotnie, wysyłanie SMS-ów za plecami użytkownika, nie?
Jan Hudec
Nie wysyła wiadomości, jeśli jest w niej apostrof.
berserk
39
Wypróbuj poniższy kod, a następnie zadzwoń, sendSMS("99999999999", "message");aby wysłać sms na wybrany numer.
//---sends an SMS message to another device---@SuppressWarnings("deprecation")privatevoid sendSMS(String phoneNumber,String message){Log.v("phoneNumber",phoneNumber);Log.v("MEssage",message);PendingIntent pi =PendingIntent.getActivity(this,0,newIntent(this,**DummyClasshere.class**),0);SmsManager sms =SmsManager.getDefault();
sms.sendTextMessage(phoneNumber,null, message, pi,null);}
Umieść następujące uprawnienia w AndroidManifest.xmlpliku.
Ten kod służy do wysyłania wiadomości w tle (nie pokazuje kompozytora wiadomości) , może również działać w odbiorniku transmisji . Jeśli chcesz wysłać wiadomość od odbiorcy transmisji.
+1. Pracował na moje wymagania. Ale brakuje mi jednej rzeczy. Ta wiadomość nie pojawia się w moich wysłanych przesyłkach. Dlaczego to jest takie?
Tahir Akram
Nie używaliśmy domyślnego procesu Inten do wysyłania smsów, używamy tylko Sms Managera. Zamiar spotka się w celu prowadzenia dziennika SmsManager.
Dwivedi Ji
Tak. To jest dla mnie bardzo przydatne. Ale wiadomość potwierdzająca wysłana po wysłaniu smsa oznacza, że mogłoby być lepiej.
Gunaseelan
3
Poleciłbym tylko dodać ten blok w try-catch.
Tanveer Shaikh
10
W systemie Android mamy klasę SmsManager, która zarządza operacjami SMS, takimi jak wysyłanie danych, wiadomości tekstowych i SMS-ów pdu. Pobierz ten obiekt, wywołując statyczną metodę SmsManager.getDefault ().
Dodaję swoją metodę SMS, jeśli może to komuś pomóc. Uważaj na smsManager.sendTextMessage, jeśli tekst jest zbyt długi, wiadomość nie znika. Musisz przestrzegać maksymalnej długości w zależności od kodowania. Więcej informacji tutaj Menedżer SMS wysyła wiadomość wieloczęściową, gdy jest mniej niż 160 znaków
Niektóre z tego, co wyjaśniono powyżej, mają na celu jedynie umieszczenie wiadomości SMS w stanie „gotowym do uruchomienia”. jak powiedział Senthil Mg, możesz używać sms managera do wysyłania smsów bezpośrednio, ale SMSManagerzostał przeniesiony doandroid.telephony.SmsManager
Wiem, że to niewiele więcej informacji, ale któregoś dnia może komuś pomóc.
Pozwala to na wysyłanie wiadomości tekstowych za pośrednictwem istniejącej aplikacji. phoneNumber - to String. Jeśli nie chcesz podawać numeru telefonu, użyj pustego ciągu „”.
Aktualizacja: jeśli używasz Intent do wysyłania smsów, nie potrzebujesz uprawnień android.permission.SEND_SMS.
Nafis Ahmad
0
Możesz pominąć numer tel, aby pozwolić użytkownikowi tylko wybrać kontakty, ale wstawić tekst sms-a w treści. Kod jest przeznaczony dla platformy Xamarin Android:
var uri =Uri.Parse("smsto:");//append your number here for explicit nbvar intent =newIntent(Intent.ActionSendto, uri);
intent.PutExtra("sms_body", text);Context.StartActivity(intent);
gdzie
Kontekst jest Xamarin.Essentials.Platform.CurrentActivity ?? Application.Context
Odpowiedzi:
Możesz użyć następującego kodu:
Upewnij się, że ustawiłeś
phoneNumber
numer telefonu, na który chcesz wysłać wiadomośćMożesz dodać wiadomość do SMS-a za pomocą (z komentarzy):
źródło
To zadziałało dla mnie.
Możesz dodać tę linię w AndroidManifest.xml
Spójrz na to
To może być pomocne.
źródło
Wypróbuj poniższy kod, a następnie zadzwoń,
sendSMS("99999999999", "message");
aby wysłać sms na wybrany numer.Umieść następujące uprawnienia w
AndroidManifest.xml
pliku.Mam nadzieję, że to pomoże.
Aktualizacja Z komentarza: DummyClasshere.class to działanie bez wykonywania żadnego procesu lub klasy, w której musisz się poruszać.
źródło
new Intent()
i to wszystko.To na pewno zadziała, w tym wyślij wiadomość bez użycia jakiegokolwiek zamiaru.
Ten kod służy do wysyłania wiadomości w tle (nie pokazuje kompozytora wiadomości) , może również działać w odbiorniku transmisji . Jeśli chcesz wysłać wiadomość od odbiorcy transmisji.
źródło
W systemie Android mamy klasę SmsManager, która zarządza operacjami SMS, takimi jak wysyłanie danych, wiadomości tekstowych i SMS-ów pdu. Pobierz ten obiekt, wywołując statyczną metodę SmsManager.getDefault ().
SmsManager Javadoc
Sprawdź poniższy link, aby uzyskać przykładowy kod do wysyłania wiadomości SMS:
artykuł o wysyłaniu i odbieraniu wiadomości SMS w systemie Android
źródło
Mam nadzieję, że ten kod ci pomoże :)
źródło
Dodaję swoją metodę SMS, jeśli może to komuś pomóc. Uważaj na smsManager.sendTextMessage, jeśli tekst jest zbyt długi, wiadomość nie znika. Musisz przestrzegać maksymalnej długości w zależności od kodowania. Więcej informacji tutaj Menedżer SMS wysyła wiadomość wieloczęściową, gdy jest mniej niż 160 znaków
// DO UŻYCIA Wszędzie
//Oczywisty
//JAWA
źródło
Uwzględnij następujące uprawnienie w pliku AndroidManifest.xml
źródło
Niektóre z tego, co wyjaśniono powyżej, mają na celu jedynie umieszczenie wiadomości SMS w stanie „gotowym do uruchomienia”. jak powiedział Senthil Mg, możesz używać sms managera do wysyłania smsów bezpośrednio, ale
SMSManager
został przeniesiony doandroid.telephony.SmsManager
Wiem, że to niewiele więcej informacji, ale któregoś dnia może komuś pomóc.
źródło
Mam nadzieję, że to ci pomoże ...
Nazwa pliku = MainActivity.java
dodaj tę linię w AndroidManifest.xml
źródło
Pozwala to na wysyłanie wiadomości tekstowych za pośrednictwem istniejącej aplikacji. phoneNumber - to String. Jeśli nie chcesz podawać numeru telefonu, użyj pustego ciągu „”.
źródło
Wyślij SMS z KitKat i nowszych wersji: - DODAJ to uprawnienie w swoim AndroidManifest.xml
Należy również zaimplementować uprawnienie czasu wykonywania dla wersji Marshmallow i powyżej.
AndroidManifest.xml
Kod jaki będzie podany poniżej: -
activity_conversation_list.xml
ConversationListActivity.java
Oto kod do układu sms i do wysyłania SMS-ów: -
activity_compose_sms.xml
fragment_compose_sms.xml
ComposeSMSActivity.java
Otóż to.
źródło
Możesz użyć tego, aby wysłać sms na dowolny numer:
źródło
Możesz pominąć numer tel, aby pozwolić użytkownikowi tylko wybrać kontakty, ale wstawić tekst sms-a w treści. Kod jest przeznaczony dla platformy Xamarin Android:
gdzie
Kontekst jest
Xamarin.Essentials.Platform.CurrentActivity ?? Application.Context
źródło