2016-01-29 2 views
0

Этот код из документации Xamarin предоставляет два способа отправки SMS. Первый способ, как показано ниже, не имеют каких-либо связанных портов параметры:Android отправить SMS установить порт назначения Xamarin

SmsManager.Default.SendTextMessage ("1234567890", null, 
"Hello from Xamarin.Android", null, null); 

второй метод:

var smsUri = Android.Net.Uri.Parse("smsto:1234567890"); 
var smsIntent = new Intent (Intent.ActionSendto, smsUri); 
smsIntent.PutExtra ("sms_body", "Hello from Xamarin.Android"); 
StartActivity (smsIntent); 

Как установить порт назначения в SMS?

ответ

0

Любое SMS-сообщение Порт-адрес обрабатывается как данные (двоичный) SMS, по крайней мере в Android.

Для того чтобы отправить сообщение на конкретный порт с помощью SmsManager, вы должны использовать метод SendDataMessage(). Если принимающее приложение прослушивает текстовое сообщение на определенном порту, то оно (предположительно) знает, как декодировать данные в виде обычного текста.

Запуск другого приложения SMS для обработки отправки - как показано в вашем втором методе - не является вероятной опцией. Вероятно, ваши клиенты, работающие по расписанию, не будут обрабатывать сообщения данных вообще. Приложение платформы, например, не обрабатывает их, и поставщик SMS просто отбрасывает их. Если, случайно, у пользователя есть тот, который делает, вашему приложению нужно будет знать, какой ключ и формат данных он ожидает на Intent, для которого нет, как мне известно, de facto.

Кроме того, если вашему приложению необходимо обрабатывать входящие сообщения, адресованные портам, для него потребуется приемник, настроенный для передачи данных SMS. IntentFilter будет иметь действие "android.intent.action.DATA_SMS_RECEIVED", схему данных "sms" и порт данных, который может быть конкретным, или подстановочный знак "*" для прослушивания на всех портах.

0

SMSManager.SendDataMessage() имеет порт рассуждение

+0

Когда я использую сообщение отправки данных, сотовый телефон, получающий сообщение, утверждает свой экземпляр BinaryMessage вместо TextMessage. Есть ли необходимость в дополнительном заголовке текстового сообщения? – Nathan

+0

не знаю, до этого я даже не знал, что у SMS есть номера портов – Jason

Смежные вопросы