おはようございます、理解できない問題に遭遇しました。説明させてください。
私は、マイクロコントローラ Arduino と Android アプリに基づくプロジェクトに取り組んでいます。arduino は pop3 コマンドからメールを復元し、Android アプリケーションに送信します。両者は SMS のみを介して通信します。
問題は次のとおりです。SMSブロードキャスターを介してAndroidでメッセージを取得し、文字列(文字列)を回復します。
以下は、メールが復元されたオブジェクトの例です。
Re: [ステージ] テクニック =?iso-8859-1?Q?vari?= =?iso-8859-1?B?6WVz?=デ通信
これにより、次の結果が得られます。
Re: [舞台] 多彩なコミュニケーションの技法
一部のテキストのみが ISO でコード化されていることに注意してください。
私の質問は次のとおりです。テキストを解析するにはどうすればよいですか? 問題は、SMS 送信を使用して、返信の種類を選択しなかったことです。テキストメッセージを読むために使用するコードは次のとおりです。
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[])bundle.get("pdus");
SmsMessage[] message = new SmsMessage[pdus.length];
String messageBody = null;
String phoneNumber = null;
for (int i=0; i< message.length;i++) {
message[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
messageBody = message[0].getMessageBody();
phoneNumber = message[0].getDisplayOriginatingAddress();
if (message.length > -1) {
if (phoneNumber.equals(arduino)) {
Toast.makeText(context, "New Data",Toast.LENGTH_SHORT ).show();
//this.abortBroadcast();
Log.d("BroadcastSMS", "***************phoneNumber:"+phoneNumber+" messageBody:"+messageBody);
//TODO : ici, que faire du message "messageBody" pour l'interpréter.
}
}
}
私はすでにメッセージを文字列として持っていることに気づきました。私の本能は自分自身を「シェル」にコーディングしようとすることでしたが、この例で「ed」がどのようにコーディングされているかわかりません。私の質問を明確にしてください:
タグ ISO の「Q」と「B」の違いは何ですか?
私の例では、2 番目のタグは ISO コード「ed」にする必要があります (単語がくっついている場合は、スペースに注意してください)。しかし、テキストの 16 進コード [0-F] [0-F] の間の対応の場合ではありません: 6WVz
しかし、私は間違った方向に進んでいる可能性があります。これらの質問に対する回答または他の方法があれば、私を助けてくれませんか?
とにかく事前にありがとう。
JM