SmsManager.sendDataMessage (..., onSpecificPort, ..., ..) не фильтрует SMS на основе портов - PullRequest
0 голосов
/ 08 марта 2012

Что я хочу сделать, это

Отправка SMS на определенный порт, и приложение, прослушивающее получение SMS-сообщений для одного и того же порта, должно реагировать только на получение SMS-сообщений.

У меня есть такой приемникэто

    <receiver android:name=".BinarySMSReceiver"> 
        <intent-filter> 
            <action android:name="android.intent.action.DATA_SMS_RECEIVED"/>
            <data android:port="8091"/>
            <data android:scheme="sms"/> 
        </intent-filter> 
    </receiver>

и отправка смс, как показано ниже

manager.sendDataMessage(phonenumber, null, (short) SMS_PORT, data, piSend, piDelivered);

MyReceiver действительно получил сообщение, но выдает сообщение наряду с другими получателями, которые также могут прослушивать.

Мой собственный почтовый ящик устройства также перехватывает смс.

Если я объявляю другого получателя с другим номером порта, он также может прослушивать.проверено в моих журналах.

или если я изменю номер порта для моего первого получателя даже тогда, когда он получит.

Только бог знает, почему этот порт не фильтрует смс.

Пожалуйстадал предложения.Любое направление или подсказка или решение приветствуются.

Спасибо

1 Ответ

2 голосов
/ 12 марта 2012

Ответ заключается в том, что эта фильтрация портов не работает хорошо для всех устройств разных производителей.

Обходной путь

Попробуйте отправить простые текстовые сообщения. С помощью в теле сообщения добавьте некоторые из ваших собственных данных заголовка сообщить получателю, что это ваша смс.

Как

messageBody = "// someHeaderPattern:" + messageBody;

сделайте ваш ресивер приоритетным для прослушивания очень высоким.

Если ваш приемник обнаружит ваши смс. abortBroadcast, чтобы другие не слушали то же самое. иначе ничего не делать.

Это просто обходной путь, ничего не гарантируется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...