2017-10-05 20 views
-1

アプリでボタンをクリックしたときにSMSを送信しようとしています。テキストを送信し、別の行に自分のGPS位置を送信します。私はすでにGPS位置を送信するようにしましたが、私が望む他の文字列を追加することはできません。私のコードは次のようになります。Androidスタジオの1つのSMSで2つの文字列を送信できません。

   double lat = l.getLatitude(); 
       double lon = l.getLongitude(); 
       String info = "This is the string I want to send in my sms!"; 
       String message="http://maps.google.com/maps?saddr="+lat+","+lon; 
       String number = "xxxxxxx"; 
       StringBuffer smsBody = new StringBuffer(); 
       smsBody.append(Uri.parse(message)); 
       android.telephony.SmsManager.getDefault().sendTextMessage(number, null, smsBody.toString(), null,null);` 

2つのsepparateの文字列で、これが唯一のGPSの場所でURLを送信しているが、私は同じ文字列にテキストやURLを追加してみました、そして、それは動作しませんでしたし、それらを連結し、どちらも動作しませんでした。私に何ができる?

答えて

0

lat eonがDoubleであるため、このメッセージを連結できません。文字列に変換する必要があります。 例:

String latString = String.valueOf(lat); 
String lonString = String.valueOf(lon); 

及び使用はメッセージ

や簡単な方法でのcancatするlatStringとlonString後:

String message="http://maps.google.com/maps?saddr="+String.valueOf(lat)+","+String.valueOf(lon); 

送信SMSのためのあなたは、この機能を使用することができます。

public void sendSMS(String phoneNo, String msg) { 
try {  
    SmsManager smsManager = SmsManager.getDefault(); 
    smsManager.sendTextMessage(phoneNo, null, msg, null, null);  
    Toast.makeText(getApplicationContext(), "Message Sent", 
      Toast.LENGTH_LONG).show(); 
} catch (Exception ex) { 
    Toast.makeText(getApplicationContext(),ex.getMessage().toString(), 
      Toast.LENGTH_LONG).show(); 
    ex.printStackTrace(); 
} 
} 
+0

私はそれをしましたが、まだ動作していません。私はこのようにメッセージを修正しました:String message = "他の文字列" + "http://maps.google.com/maps?saddr=" + latString + "、" + lonString; – user8559076

+0

エラーは何ですか? – Daniele

+0

それはちょうどSMSを送信しません – user8559076