2017-11-09 3 views
-1

私は以下のコードで複数のSMSを取得しようとしています。複数の番号へのSMSは私のアプリケーションでは機能しません

private void sendSMS() { 
    try { 
     phoneNumber = phoneEditText.getText().toString(); 
     donorName = donorNameEditText.getText().toString(); 
     message = String.format(message, donorName, phoneNumber, donationAmount); 

     SmsManager smsManager = SmsManager.getDefault(); 
     //ArrayList<String> smsParts = smsManager.divideMessage(message); 
     smsManager.sendTextMessage(phoneNumber, null, message, null, null); 
     smsManager.sendTextMessage(defaultPhoneNumber1, null, message, null, null); 
     smsManager.sendTextMessage(defaultPhoneNumber2, null, message, null, null); 
     Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show(); 
    } catch (NumberFormatException e) { 
     Snackbar.make(findViewById(R.id.record_donation_constraint_layout), invalidDestinationAddress, Snackbar.LENGTH_LONG).show(); 
    } 
} 

似たようなメッセージをチェックし、それらの方法を試しました。どこが間違っていますか?

+1

あなたはアプリにSEND_SMS権限を与えていますか? – Sunny

+0

https://stackoverflow.com/a/18977424/3983054 SMSマネージャーの –

+0

SEND_SMS権限は必須です –

答えて

0

問題は、投稿された各コードの間に9秒と7秒の遅延を導入することで解決します。いくつかの遅延を数回テストし、Androidの5つの異なるデバイスとバージョンで最適な値を見つけました。

try{ 
      Thread.sleep(9000); 
     }catch (Exception e){ 
     } 
0

まず、AndroidManifestでSMS送信許可をリクエストする必要があります。

<uses-permission android:name="android.permission.SEND_SMS"/> 

これらの行に沿って何かを行うことができます。

// you need to import the Sms Manager 
    import android.telephony.SmsManager; 

    // fetch the Sms Manager 
    SmsManager sms = SmsManager.getDefault(); 


     phoneNumber = phoneEditText.getText().toString(); 
     defaultPhoneNumber1 = defaultPhoneNumber1.getText().toString(); 
     defaultPhoneNumber2 = defaultPhoneNumber2.getText().toString(); 
     donorName = donorNameEditText.getText().toString(); 
     message = String.format(message, donorName, phoneNumber, donationAmount); 

    // the phone numbers we want to send to 
    String numbers[] = {phoneNumber , defaultPhoneNumber1 ,defaultPhoneNumber2 }; 

    for(String number : numbers) { 
     sms.sendTextMessage(number, null, message, null, null); 
     Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show(); 
    } 
+0

に権限が追加されました。最初は問題ありません –

+0

解決策も確認してください。 –

+0

動作しませんでした。 1000msの遅延も導入されました。最初のものが通過し、それがそれです。 –

関連する問題