2016-11-19 1 views
1

Я пытаюсь отправить сообщение нескольким номерам. Но сообщение не отправляется. Я добавил код для отправки сообщений в службе, чтобы убедиться, что код выполняется, даже если приложение находится в фоновом режиме.Текстовое сообщение, не получающее сообщение

Также я добавил разрешение в манифест и попросил разрешения на запуск.

службы сообщений:

public class MessageService extends Service { 

    ArrayList<String> numbers = new ArrayList<>(); 
    private SharedPreferences sharedpreferences; 
    private String mUserName; 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     sharedpreferences = getSharedPreferences("UserProfile", Context.MODE_PRIVATE); 

     mUserName = sharedpreferences.getString("UserUsername", ""); 

     numbers = intent.getStringArrayListExtra("numbers"); 

     for (String number:numbers) { 

       sendMsg(number); 

      // sendSMS("8655864341","Hello"); 
     } 

     return super.onStartCommand(intent, flags, startId); 
    } 

    public void sendMsg(final String num){ 
     String SENT = "SMS_SENT"; 
     final SmsManager sms = SmsManager.getDefault(); 
     final PendingIntent sentPI = PendingIntent.getBroadcast(MessageService.this, 0,new Intent(SENT), 0); 
     Handler h = new Handler(); 
     h.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       // sms.sendTextMessage(num, null, "Hi,I am " + mUserName + "add me to your unique contact list and you never need to update" + 
         // " any changes anymore! Click download below to download the App." + "https://play.google.com/apps/testing/com.weberz", sentPI, null); 

       sms.sendTextMessage(num, null, "Hi,add me to your unique contact list and you never need to update" + 
         " any changes anymore! Click download below to download the App.", sentPI, null); 
      } 
     }, 3000); 


    } 

} 

Эта вещь работала до того, сообщения были получены по номерам. Теперь я попытался добавить ссылку и имя пользователя в сообщении, и они не отправляются.

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

Я также хотел знать, как добавлять гиперссылки в SMS, чтобы пользователь мог открыть веб-страницу после нажатия ссылки?

ответ

1

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

Попробуйте заменить SIM-карту и отправить сообщение «Hello World» еще раз.

Гиперссылки в SMS распознаются по телефону, а самые умные телефоны делают их интерактивными. Итак, просто поместите URL-адрес в SMS, и получатели могут его щелкнуть. Он работает на iPhone и на большинстве телефонов Android.

+0

sms.sendTextMessage (NUM, нулевой «Привет, Я» + mUserName + «добавить меня в свой уникальный список контактов, и вы никогда не должны обновить» + "любые изменения больше Нажмите скачать! ниже, чтобы загрузить приложение. "+" https://play.google.com/apps/testing/com.weberz ", sentPI, null); Как это правильно? @vmayorow – Sid

+0

Я попытался сменить сим, и он работал для сообщения без ссылки. Но теперь, как отправить ссылку? Пожалуйста, проверьте, как я пытался. @vmayorow – Sid

+0

Проблема была в том, что правый сим был заблокирован .. Спасибо .. @vmayorow – Sid

2

Возможно, вы заблокированы из-за своего поставщика SMS. Поскольку они обычно блокируют ссылки, отправляемые частными клиентами, чтобы избежать спама.

Добавить гиперссылку в SMS, просто введите URL как обычную строку . Как и обычный текст. Большинство смартфонов будут разобрать ссылку и сделать ее «доступной», даже если она находится в СМС. Futhermore рассмотрите возможность использования библиотеки, которая сокращает ваш URL-адрес, поскольку SMS ограничено 160 символами. Это библиотека, которую я использую: https://github.com/vekexasia/android-googl-shortener-lib.

Чтобы отправить SMS я рекомендую использовать:

void sendSMS(String phoneNumber, String message) { 
      SmsManager smsManager = SmsManager.getDefault(); 
      smsManager.sendTextMessage(phoneNumber, null, message, null, null); 
     } 

Этот метод использует SMSManager, которая очень проста в использовании (API 19). Для получения дополнительной информации: https://developer.android.com/reference/android/telephony/SmsManager.html

+0

sms.sendTextMessage (num, null, "Привет, я" + mUserName + "добавьте меня в свой уникальный список контактов, и вам никогда не нужно обновлять «+» любые изменения больше! Нажмите «Загрузить ниже» для загрузки приложения «+» play.google.com/apps/testing/com.weberz »;, sentPI, null); Как это правильно[email protected] Cédric Portmann – Sid

+1

Вы что-то испортили с помощью «;». Это может быть так: sms.sendTextMessage (num, null, «Привет, я» + mUserName + »добавьте меня в свой уникальный список контактов, и вам больше не нужно обновлять« + »любые изменения! Нажмите ниже, чтобы скачать App. "+" Play.google.com/apps/testing/com.weberz ", sentPI, null); –

+0

И только добавьте sentPI, если вам нужен «PendingIntent (sentIntent)». –

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