2016-07-15 13 views
0

Hier erkennt automatisch mein Code:Ich habe versucht, eine App zu machen, dass die OTP senden über die Standard-Android-Messaging-App

btnSend.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     final String sentOTP = RandomNum(); 
     if (!etNumber.getText().toString().trim().equals("")) { 
     Uri uri = Uri.parse("smsto:" + etNumber.getText().toString().trim()); 
     Intent smsIntent = new Intent(Intent.ACTION_SENDTO, uri); 
     smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     smsIntent.putExtra("sms_body", sentOTP); 
     startActivity(smsIntent); 
     inish(); 
     Intent i = new Intent(sendActivity.this, CheckerActivity.class); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     i.putExtra("generatedOTP", sentOTP); 
     startActivity(i); 
     finish(); 
     Toast.makeText(sendActivity.this, "Enter the phone NUMBER!!", Toast.LENGTH_LONG).show(); 
     } 
    } 
}); 

Nach Klick auf den Button öffnet sich die Messaging-Anwendung und wird von der CheckerActivity backgrounded dass ist gestartet. Was ich will ist, dass, wenn die Nachricht App öffnet, ich die Nachricht sende, und sobald ich auf die Schaltfläche Senden klicken, um die Nachricht zu senden, wird CheckerActivity auch gestartet.

Wie kann ich das erreichen? Muss ich zusätzliche Intent-Flags setzen?

+0

Empfänger erstellen, der beim Senden einer Nachricht angerufen wird, und von diesem Empfänger überprüfen, ob die letzte Nachricht gesendet wurde. Und dann ruf deine CheckerActivity an. –

Antwort

0

Starten Sie SMS Intent mit Ergebnissen, auf Ergebnisse können Sie dann Ihre Aktivität starten.

+0

@Override protected void onActivityResult (int requestCode, int Result, Intent-Daten) { if (requestCode == SMS_REQUEST) { if (Result == RESULT_OK) { Intent i = new Intent (sendActivity.this, CheckerActivity .Klasse); i.putExtra ("generatedOTP", sentOTP); startAktivität (i); Ende(); } } } wird das funktionieren? – vishal

+0

ja, das sollte den Trick tun, vergessen Sie nicht, Ihre SMS-Aktivität wie starten .. 'startActivityForResult (smsIntent, SMS_REQUEST);' – KgaboL