0

telnet からエミュレータに SMS を送信しようとしています

このコマンドを使用して: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;

}



}
4

1 に答える 1