2017-12-06 7 views
0

Ich habe versucht, Testnachrichten von send_sms api. My SMSPortalFragment.java Code senden, keine Fehler zu senden. Außerdem wird in Logcat kein anderer Fehler angezeigt.Senden von SMS von SMSPortalFragment funktioniert nicht

  1. Der Code wird im Galaxy S8 erstellt und installiert.
  2. Die App läuft Spaß.
  3. Going to fragment_smsportal.xml funktioniert gut.
  4. Ich kann meinen Namen und meine Nachricht eingeben.
  5. Auf Knopf klicken fragt nach meinem PERMISSION in der Laufzeit.
  6. KEINE NACHRICHT GESENDET, SELBST NACH DER ERLAUBUNG PERMISSION.

Java-Code:

private static final int MY_PERMISSIONS_REQUEST_SEND_SMS =0 ; 

Button sendButon; 
EditText fullName; 
EditText textMessage; 
String phoneNo = "***********"; 
String name; 
String message; 
String sendMessage; 

public SMSPortalFragment() { 
    // Required empty public constructor 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View smsportal = inflater.inflate(R.layout.fragment_smsportal, container, false); 

    fullName = (EditText) smsportal.findViewById(R.id.fullName); 
    textMessage = (EditText) smsportal.findViewById(R.id.textMessage); 
    sendButon = (Button) smsportal.findViewById(R.id.sendButon); 

    sendButon.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      sendSMSMessage(); 
     } 
    }); 

    return smsportal; 
} 

private void sendSMSMessage() { 
    name = fullName.getText().toString(); 
    message = textMessage.getText().toString(); 
    sendMessage = name + " " + message; 


    if (ContextCompat.checkSelfPermission(getActivity(), 
      Manifest.permission.SEND_SMS) 
      != PackageManager.PERMISSION_GRANTED) { 
     if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), 
       Manifest.permission.SEND_SMS)) { 
     } else { 
      ActivityCompat.requestPermissions(getActivity(), 
        new String[]{Manifest.permission.SEND_SMS}, 
        MY_PERMISSIONS_REQUEST_SEND_SMS); 
     } 
    } 
} 
@Override 
public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_SEND_SMS: { 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage(phoneNo, null, sendMessage, null, null); 
       Toast.makeText(getActivity(),"SMS sent.", Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(getActivity(),"SMS failed, please try again.", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

} 

Kann mir jemand sagen, was ich falsch mache?

PS: Ich habe meine Telefonnummer aus Sicherheitsgründen entfernt.

Antwort

0

Sie Ihre Sendelogik in onRequestPermissionsResult nicht schreiben() und

Try this ...

Manifest Erlaubnis

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

und hier Das Snippet ist

try { 
      Bundle msgDataBundle = intent.getExtras(); 
      String mobileNumber = msgDataBundle.getString("MobileNumber"); 
      SmsManager smsManager = SmsManager.getDefault(); 
      // smsManager.sendTextMessage(mobileNumber,null,"sam",null,null); 
      smsManager.sendTextMessage(mobileNumber, null, "Test Sample Message Text", null, null); 
      Toast.makeText(context, "SMS Sent!", Toast.LENGTH_LONG).show(); 
      Log.d("---", "Sent"); 

     } catch (Exception e) { 
      Toast.makeText(context, "SMS faild, please try again.", Toast.LENGTH_LONG).show(); 
      Log.d("---", "Fail"); 
      e.printStackTrace(); 
     } 
+0

ich die Codes von hier gefolgt sind: https://www.tutorialspoint.com/android/android_sending_sms.htm SmsManager API. –

+0

Vielen Dank übrigens .. hat mich eine Weile ... das noob ich bin..aber es funktioniert jetzt .. –