2016-07-15 55 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

相关问题