2016-11-19 6 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); 


    } 

} 

、メッセージは数字上で受信されていました。今、私はメッセージにリンクとユーザー名を追加しようとしましたが、送信されませんでした。

次に、メッセージからリンクとユーザー名を削除しようとしましたが、メッセージが送信されていて、今動作していないかどうかを確認しました。

また、ユーザーがリンクをクリックした後にWebページを開くことができるように、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

私はsimを変更しようとしましたが、リンクなしでメッセージを処理しました。しかし今、リンクを送る方法は?私が試した方法を確認してください。 @vmayorow – Sid

+0

問題は正しいsimがブロックされました..ありがとうございました.. @vmayorow – Sid

2

SMSプロバイダが原因でブロックされている可能性があります。通常、個人のお客様がスパムを避けるために送信するリンクをブロックします。

SMSにハイパーリンクを追加するには、単にURLを通常の 文字列として挿入します。通常のテキストと同じように。ほとんどのスマートフォンは のリンクを解析し、S​​MS内にあってもリンクをクリック可能にします。 SMSは160文字に制限されているため、URLを短くするライブラリを使用することを検討してください。これは私が使っている図書館:https://github.com/vekexasia/android-googl-shortener-libです。

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

この方法はSmsManagerを使用して、非常に使いやすいです(API 19):

は、私が使用することをお勧めしますSMSを送信します。詳細については: https://developer.android.com/reference/android/telephony/SmsManager.html

+0

sms.sendTextMessage(num、null、 "こんにちは、私は+ mUserName +"あなたの一意の連絡先リストに私を追加し、更新する必要はありません"+"アプリケーションのダウンロードをクリックしてください。 "+" play.google.com/apps/testing/com.weberz "; sentPI、null);このように?@セドリックポートマン – Sid

+1

あなたは何かを ";"と混乱させました。 sms.sendTextMessage(num、null、 "こんにちは、私は+ mUserName +"あなたの一意の連絡先リストに私を追加してください "+"あなたはもう何も変更を更新する必要はありません!アプリ "+" play.google.com/apps/testing/com.weberz "、sentPI、null); –

+0

「PendingIntent(sentIntent)」が必要な場合のみ、sentPIを追加してください。 –

関連する問題