【问题标题】:SMS sent from telnet to emulator displayed in weird characters从 telnet 发送到模拟器的 SMS 以奇怪的字符显示
【发布时间】:2013-01-02 05:18:28
【问题描述】:

我尝试从 telnet 向模拟器发送短信

使用这个命令:sms send (number) (body)

由于某些原因,有时会以普通英文查看消息,而有时会以中文字符查看消息!

例如,当我尝试此操作时,我会完美地收到消息:

sms send 123 hey man what's up

当我尝试这个时,我得到了汉字:

sms send 123 car id =5, latitude = 4343.343, longitude =23112

这是我的代码:

public class SmsReceiver extends BroadcastReceiver {

ArrayList<SmsReceivedListener> listeners = new ArrayList<SmsReceivedListener>();
private static SmsReceivedListener listener;
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

@SuppressLint("NewApi") @Override
public void onReceive(final Context context, final Intent intent) {

    if (intent != null && SMS_RECEIVED.equals(intent.getAction())) {

        final SmsMessage smsMessage = extractSmsMessage(intent);

    if(getSmsReceivedListener()!=null)
    {
        String body =  smsMessage.getMessageBody();
        Toast.makeText((Context) context, body, 
                Toast.LENGTH_LONG).show();
     }

    }
}

@SuppressLint("NewApi") private SmsMessage extractSmsMessage(final Intent intent) {

    final Bundle pudsBundle = intent.getExtras();
    final Object[] pdus = (Object[]) pudsBundle.get("pdus");
    final SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[0]);

    return smsMessage;

}



}

【问题讨论】:

    标签: android android-emulator sms telnet


    【解决方案1】:

    我在 telnet 会话期间发现默认消息传递应用程序存在相同问题。

    问题通常在于您的telnet客户端和androids telnet服务器之间的通信。

    打字时:

    sms send 123 hello<Enter>
    

    立即正确接收到消息。

    但是如果你输入:

    sms send 123 ha<Backspace>ello<Enter>
    

    您的 telnet 会话将显示与以前完全相同,但在消息应用程序中收到的消息包含中文字符。这来自未正确传输到服务器的字符。其他字符可能会产生同样的问题。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2012-04-23
      • 2021-05-19
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2012-10-01
      相关资源
      最近更新 更多