У меня проблема при получении длинного двоичных сообщений. Предполагается, что клиент получит множественные бинарные SMS. При поиске stackoverflow люди упоминали, что onReceive() запускается только один раз. Оттуда вы можете объединить несколько SMS.Broadcast Receiver Long Binary SMS
Я не уверен, что при отправке бинарных SMS-сообщений. Я получаю 2 SMS, а onReceive запускается дважды. SMS отдельно друг от друга делают невозможным конкатенацию.
AndroidManifest:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<receiver
android:name="com.myapp.smsnotification.SMSReceiver"
android:enabled="true" >
<intent-filter android:priority="100" >
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data
android:host="localhost"
android:port="9515"
android:scheme="sms" />
</intent-filter>
</receiver>
SMSReceiver.java
в моей OnReceive()
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
try {
if (messages.length > -1) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
for (int i = 0; i < messages.length; i++) {
SmsMessage message = messages[i];
os.write(message.getUserData());
}
byte[] stream = os.toByteArray();
// do something with stream
}
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
Привет @mussharapp, как вы подтверждаете свое заключение? – ericn