Sms received not the same sent - android

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

Related

SmsManager not working in Android 4.4.x

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.

send and receive sms of specific number --android

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.

Unable to send SMS message in Hindi

I am facing a strange issue with SMSManager in Android. I am sending SMS messages in two languages, Hindi and English. Message sending works fine for English messages but messages don't get delivered in case of Hindi text. I don't even receive any broadcast of failure or success for Hindi messages.
Here is my code for sending messages.
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(destinationAddress, null, message, null, null);
PS.
I have prepared a sample app that sends messages. It works fine when messages are typed in EditText in Hindi language but unable to send messages when Hindi string is hardcoded.
i.e.
String hindiMessage = editText.getText.toString()// works fine
String hindiMessage = "हिन्दी संदेश"//fails
I am looking for any possible solution or workaround.
This has got resolved by sending message as a multipart message. SMS were working in english language because the length of the messages that i was sending were less than maximum length of one message. But after converting it to hindi its length increases and exceeds the maximum limit of one message.
So sending messages as multipart message worked for me. here is the code for the same:
SmsManager smsManager = SmsManager.getDefault();
ArrayList<String> parts = smsManager.divideMessage(message);
smsManager.sendMultipartTextMessage(destinationAddress, null, parts, null, null);
Thanks
N_JOY.

How to send flash messages using android

I am sending SMS by using
Code:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
It's working fine and successfully sends a standard SMS that is automatically saved in recipient mobile inbox.
I want send the SMS as flash(notification) SMS. By this I mean that the message should be displayed immediately on recipient mobile screen but not stored.
Please tell me how can I do this.
For sending Flash SMS the Modem used should be compatible to send Flash Messages.
try sending AT+CMGF? command.This will read the value stored by modem for command CMGF Message Format
if AT+CMGF? returns 0 i.e it is in PDU mode (where entire TP data units are used)
then it is compatible
else if it returns 1 then it is in text mode (where the body of
the message and its headers are given as separate parameters)

How to change sender mobile number in Android SMS service

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.

Categories

Resources