2017-12-30 19 views
-1

共有プリファレンスに保存された番号を使用してテキストメッセージを送信していますが、アプリケーションを実行するとクラッシュし、logcatに違法な宛先アドレスがあると表示されます。ここ不正な宛先アドレスsmsマネージャの共有プリファレンス

は私のlogcatは

12-30 21:01:30.758 12239-12239/? E/AndroidRuntime: FATAL EXCEPTION: main 
               Process: com.android.beez.help2, PID: 12239 
               java.lang.IllegalArgumentException: Invalid destinationAddress 
                at android.telephony.SmsManager.sendTextMessage(SmsManager.java:127) 
                at com.android.beez.help2.MainActivity.sendSms(MainActivity.java:63) 
                at com.android.beez.help2.MainActivity$2.onClick(MainActivity.java:41) 
                at android.view.View.performClick(View.java:4475) 
                at android.view.View$PerformClick.run(View.java:18790) 
                at android.os.Handler.handleCallback(Handler.java:808) 
                at android.os.Handler.dispatchMessage(Handler.java:103) 
                at android.os.Looper.loop(Looper.java:193) 
                at android.app.ActivityThread.main(ActivityThread.java:5328) 
                at java.lang.reflect.Method.invokeNative(Native Method) 
                at java.lang.reflect.Method.invoke(Method.java:515) 
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
                at dalvik.system.NativeStart.main(Native Method) 

であり、ここでのメッセージはに送信されている私の

MainActivity.java

package com.android.beez.help2; 

import android.app.Service; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.location.LocationManager; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 
Button button; 
SharedPreferences sharedPreferences; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    buttonInit(); 
    Button setupMa = (Button) findViewById(R.id.setupMA); 
    setupMa.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent a = new Intent(MainActivity.this,Setup.class); 
      startActivity(a); 
     } 
    }); 


    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      loadCredit(); 
      sendSms(); 

     } 
    }); 
} 


protected void sendSms() { 

    spInit(); 

    String number1 = sharedPreferences.getString("first", ""); 
    String number2 = sharedPreferences.getString("second", ""); 
    String number3 = sharedPreferences.getString("third", ""); 
    String name = sharedPreferences.getString("name", ""); 
    String text = "Help, this is " + name + ", if you are reading this I am in trouble please help me" + 
      " Iam located at " + "http://www.google.com/maps/place/"+GPSTracker.latitude+","+GPSTracker.longitude+ " " + 
      "" + 
      "" + 
      "-Sent via the Emergency App"; 

    SmsManager manager = SmsManager.getDefault(); 
    manager.sendTextMessage(number1, null, text, null, null); 
    manager.sendTextMessage(number2, null, text, null, null); 
    manager.sendTextMessage(number3, null, text, null, null); 



    boolean isFirstRun = getSharedPreferences("PREFERENCE", MODE_PRIVATE) 
      .getBoolean("isFirstRun", true); 

    if (isFirstRun) { 
     Intent launchSetups = new Intent(MainActivity.this, Setup.class); 
     startActivity(launchSetups); 


     } 
    } 

protected void loadCredit() { 

    spInit(); 

    String creditLine = sharedPreferences.getString("dialLoadSp",""); 

    Uri number = Uri.parse("tel:"+creditLine); 
    Intent callIntent = new Intent(Intent.ACTION_DIAL, number); 
    startActivity(callIntent); 
} 

public void buttonInit() { 
    button = (Button) findViewById(R.id.button_main); 
} 
public void spInit() { 
    sharedPreferences = MainActivity.this.getSharedPreferences("com.android.beez.help2",MODE_PRIVATE); 

} 

} 

数字はeditTextsからのものとされていますsharedPreferencesに格納されます。 ...問題は、共有の好みからであるか、またはそれとテキストマネージャ

+0

uは任意のスペースがあるかどうかどうかを確認しましたか? –

+0

@ Md.ibrahimkhalil任意のスペース? – TheRealBeez

答えて

0

私はあなたがdestination address追加AN場合を特定すべきだと思うの問題がある可能性がありif(num1!="" || num2!="" || num3...) manager.sendText...

+0

宛先アドレスが指定されています。その番号は共有された環境設定に保存されています – TheRealBeez

+0

確認してから、SMSを送信する前に番号を確認してください... –