2016-07-15 57 views
0

這裏發是我的代碼:我試圖讓一個應用程序,自動檢測OTP通過默認的Android短信應用

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

在點擊按鈕後,消息應用程序打開,由CheckerActivity中背景是開始。我想要的是,當消息應用程序打開時,我發送消息,只要單擊發送按鈕發送消息,CheckerActivity也會開始。

我該如何做到這一點?我是否需要設置一些額外的意圖標誌?

+0

使接收器在消息發送時被調用,並從該廣播接收器檢查最後發送的消息是否屬於你。然後打電話給你的CheckerActivity。 –

回答

0

用結果開始短信意向,結果你可以開始你的活動。

+0

@Override 保護無效onActivityResult(INT requestCode,INT發送resultCode,意圖數據){ 如果(requestCode == SMS_REQUEST){ 如果(resultCode爲== RESULT_OK){ 意圖I =新意圖(sendActivity.this,CheckerActivity 。類); i.putExtra(「generatedOTP」,sentOTP); startActivity(i); finish(); } } } 這個工作嗎? – vishal

+0

是的,這應該做的伎倆,不要忘記開始你的短信活動,如..'startActivityForResult(smsIntent,SMS_REQUEST);' – KgaboL

相關問題