I've implemented code to send sms message from an Android emulator to another, which works well. But when I try to send message from the emulator or an Android device(with wifi only, no data plan or number with the phone) to a device(iPhone ), it doesn't work. I'm not quite sure if sms needs a data plan to send message in real world. Thx for the help!
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number, null, message, null, null);
Though sms does not require a data plan, it needs a working GSM or CDMA Network connection with call working.
SMS is Short Message Service. It's been around longer than we've had internet on phones, and definitely requires a valid SIM card and a working network connection (data over network isn't necessary, but you should be able to make calls).
Related
I am developing an Android app, which needs to send a message to multiple recipients.
I used this code to send an SMS to a phone:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("9030500259", null, "sms message", null, null);
I have read many questions in this site which said the above is correct.
On Googling I found this:
http://android-developers.blogspot.in/2013/10/getting-your-sms-apps-ready-for-kitkat.html
According to the article in the above link, some changes happened in messaging.
I am unable to send SMS in my application.
What is the correct code to send an SMS in Android version 4.4.x?
i was facing same problem .but finally got solution . if u are testing this code in dual sim phone then sim slot 1 always keep active otherwise it " no service" error inn pendingsentintent.
I am work on a messaging system which is send and receive sms but the requirement is the application send sms to specific number which is store in its database and it also receive sms from specific number which is store in its database . actually the client is manufacturer of GPS system with GPRS in this system a sim card is stored which is reply when the sms is send it like current location and many function .when sms will receive which number is store in database of application the sms is not show in android phone default program which is already installed in device. tell me how can i start
You can use SmsManager to send sms.
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
You can use BroadcastReceiver to receive sms.
Several tutorials are available online to understand BroadcastReceiver.
I am trying to develop an app that send and receive a sms
my sms's are too long so i used a multi partsend sms method
the sms is sent successfully bu when receiving the message the character are wrongly printed in screen
please help me
i tested it in a virtual device
SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(keyAsString);
sms.sendMultipartTextMessage(getPhoneNo().getText().toString(), null, parts, null, null);
Have you checked the phone sending and the phone receiving are using the same character sets?
I'm not entirely sure how to check because I don't know what phone you're using but if the characters look something like this phenomenon then that might be your problem: http://en.wikipedia.org/wiki/Mojibake
Can anyone tell me what the difference is between 'data sms' and 'text sms'? I think I know pretty well what a 'text sms' is, but what is a 'data sms'?
This question arose while developing an android app that receives incoming sms. Using the android api, one can choose whether the incoming sms is 'data' (android.intent.action.DATA_SMS_RECEIVED) or 'text' (android.provider.Telephony.SMS_RECEIVED).
And, is this differentiation only in android api or is it rather general?
Thank you.
no, "Data SMS" is not "SMS over a 3G/4G data connection". Data SMS is just a kind of SMS message where the message is not encoded as a text string but binary.
Data SMS messages are sent through the data network, over your 2G / 3G data connection, just like all other data such as internet traffic. Normally SMS messages have their own method of transport.
I'm sending SMS in my Android App,
SmsManager sm = SmsManager.getDefault();
String number = "1234567890";
sm.sendTextMessage(number, null, "Test SMS Message--Successful", null, null);
It is working fine. My Question is, Is it possible to add string/text instead of Sender Mobile Number? so that in the recipient mobile, the sender's mobile number will be appeared as that string/text.
Yes, it is possible to change the sender phone number, but you need to use a third party SMS Gateway. You can reroute the SMS to come from a phone number that you register for your app.
Twilio - http://www.twilio.com/help/faq/sms/can-i-specify-the-phone-number-a-recipient-sees-when-getting-an-sms-from-my-twilio-app
TextMagic - http://www.textmagic.com/app/pages/en/products/bulk-sms-gateway-api
No. It is not possible. Here are multiple reasons why:
When you send an sms, using SmsManager you encode it with the content - the actual text message itself. You also encode it with the phone number you are sending it to. And you encode the message center number to the message. That is all you get to encode. Then Android/hardware handles sending it over to the cell phone tower where it is then out of your hands.
If you somehow tried to encode the recipient phone number as text, then the carrier would have no idea how to handle the message. It wouldn't have anywhere to send it too.
Cell phones do not have inbound Caller (or sms) ID - unless the number is already programmed, of course.
When the carrier network is sending an sms, it goes through a message center. The message center determines what data is forwarded to the recipient phone. The message centers currently available just do not support what you're wanting - at least not to the consumer.