2010-10-06 13 views
8

czego potrzebuję:
- Wyślij SMS bez interakcji z GUI (wybór klienta, aby wysłać SMS jest out)
- SMS musi być widoczne w wątku zapytał z "content: // mms-sms/rozmowy /" + ThreadIDAndroid Wyślij SMS, który jest widoczny w wątku SMS (brak GUI)

Obecnie używam SMSManager:

SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(phone, null, message, null, null); 

Czy istnieją jakieś sposoby, aby to zrobić we wszystkich urządzeniach rozważa każdy z nich ma inna aplikacja do SMS-ów. Z góry dziękuję.

Odpowiedz

12

tylko zorientowaliśmy się, można użyć ContentResolver wstawić SMS i pamiętaj, aby dodać uprawnienia: "używa-pozwolenie android: name =" android.permission.WRITE_SMS”

ContentValues values = new ContentValues(); 
    values.put("address", phone); 
    values.put("body", message); 
    getContentResolver().insert(Uri.parse("content://sms/sent"), values); 
+0

czy to rzeczywiście działa próbowałem go, i jeśli mogę korzystać z własnego numeru telefonu komórkowego i wysłać go? z tego samego telefonu z kartą SIM, sms pojawia się w folderze wysłanym, ale nigdy nie został wysłany. SMS nigdy nie dotrze, jeśli wyślę go z powyższym kodem do innego odbiorcy/innego telefonu. Wydaje mi się, że tylko punkt 2 twojego początkowego wymogu jest spełniony, ale nie 1) - zastanawiasz się, dlaczego ta odpowiedź dostała 4 przegrane? Działa dla innych? –

+1

@Mathias: To działa dla mnie. Musisz użyć tego kodu w połączeniu z sendTextMessage() w powyższym pytaniu. Kod podany w tej odpowiedzi dodaje tylko wiadomość do wysłanych wiadomości, w rzeczywistości nie wysyła wiadomości. Potrzebowałem również dodać "-permissions" android.permission.READ_SMS "oprócz WRITE_SMS, aby działał. Musisz również zaimportować android.content.ContentValues; importować android.net.Uri; – alexteg

+0

@alexteg - Mam to działa w międzyczasie, dziękuję za odpowiedź! –

1

trzeba użyć następujące wartości:.

values.put("thread_id", threadId); 

i będzie związana z gwintem