私はAndroid用のSMSAPIを使用するアプリケーションに取り組んでいます。受信側は7ビットでエンコードされたSMSのみをサポートする組み込みユニットであり、送信する文字列はこの特定のアルファベットの記号のみで構成されているため、Androidは7ビットでエンコードされて送信するように思われます。しかし、そうではありません。
したがって、使用するエンコーディングを指定する方法を探しています。私のコードが今日どのように見えるかについては、以下を参照してください。gsm7BitPackedToStringメソッドは、バイト配列を7ビット文字列に変換します。つまり、文字列は7ビット互換の文字のみで構成され、内部のAndroidAPIからコピーされます。
private static boolean sendMessage(String tel,byte[] message,int septets) {
SmsManager sms = SmsManager.getDefault();
if (septets != -1) {
String a = GsmAlphabet.gsm7BitPackedToString(message,0,septets);
sms.sendTextMessage(tel, null, a, null, null);
return true;
}
return false;
}
私は次の解決策を検討しました:
- ある種の内部メソッドを使用していますが、私が読んだものはもう存在しないようです。
- データメッセージを送信しますが、これには、受信側もサポートしていない追加のユーザーデータヘッダーが必要です。
どんな助けでも大歓迎です:-)