Получить SMS с заголовком пользовательских данных (UDH) на устройствах Android - PullRequest
0 голосов
/ 15 апреля 2011

Я разрабатываю приложение для Android, которое должно получать SMS с заголовком пользовательских данных (UDH). Сообщения с UDH невидимы для стандартного Android SMS мессенджера. Я использую UDH "06050415810000" для тестирования ("06" - длина заголовка, "05" - тип заголовка, "04" - длина остальной части заголовка, "1581" - порт назначения, "0000" - порт src). Устройство с ОС Samsung получило сообщение с таким заголовком, и сообщение было показано в папке «Входящие» (но открыть сообщение было невозможно). Устройство с ОС Android не показывает его (это нормально), но мое приложение не может ловить невидимые SMS. У меня есть следующий код для пересылки SMS:

public class SmsReceiver extends BroadcastReceiver {

public Class<?> delegate = null;

@Override
public void onReceive(Context context, Intent intent) {


    Bundle bundle = intent.getExtras();
    if (bundle != null) {
        Object[] pdus = (Object[])bundle.get("pdus");
        final SmsMessage[] messages = new SmsMessage[pdus.length];
        for (int i = 0; i < pdus.length; i++) {
            messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
        }

        AppManager.setSmsMessage(messages[0]);

        if (delegate != null) {
            Intent di = new Intent(context, delegate);
            di.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            di.putExtra("SMS", messages[0].getPdu());
            context.startActivity(di);
        }

    }
}

А это мой файл манифеста:

    <receiver
        android:name=".services.SmsReceiver">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            <action android:name="android.intent.action.DATA_SMS_RECEIVED"/>                 
        </intent-filter>
    </receiver>

Приложение получает только сообщения без UDH.

1 Ответ

0 голосов
/ 11 августа 2011

Вам необходимо разрешение RECEIVE_SMS

<uses-permission android:name="android.permission.RECEIVE_SMS" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...