2017-12-30 22 views
-1

Ich benutze Nummern in gemeinsamen Einstellungen gespeichert, um Textnachrichten zu senden, aber wenn ich die App laufen, stürzt es ab und der Logcat sagt, es gibt eine illegale Zieladresse wie?Illegale Zieladresse sms manager shared preferences

hier ist mein 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) 

und hier ist mein

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); 

} 

} 

Die Zahlen die Nachrichten von editTexts werden gesendet werden und sind das in sharedPreferences gespeichert. das Problem könnte aus dem gemeinsamen Präferenzen sein oder ist es und Ausgabe des Text-Manager

+0

haben Sie für überprüfen, ob es irgendeinen Raum? –

+0

@ Md.ibrahimkhalil irgendeinen Platz wo? – TheRealBeez

Antwort

0

Ich glaube, Sie die destination address add angeben sollte eine if ... if(num1!="" || num2!="" || num3...) manager.sendText...

+0

wird die Zieladresse angegeben. es ist egal, welche Nummern in den freigegebenen Einstellungen gespeichert werden – TheRealBeez

+0

ok dann überprüfen Sie die Zahlen vor dem Senden von SMS ... –

Verwandte Themen