Вы должны обрабатывать событие получения смс в широковещательном приемнике, а не в активности. В методе onReceive вещательного приемника вы можете отфильтровать телефонные номера, а если это интересующий вас номер телефона, вы можете запустить свою деятельность.
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
if(phone number matches your filter){
startActivity(your intent);
}
}
}
}
И объявить получателя в манифесте:
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
РЕДАКТИРОВАТЬ: номер телефона, который вы получаете из системы, вероятно, содержит код страны, код города и т. Д., И поэтому вы должны сравнить строки следующим образом:
if(extractedNumber.contains(yourNumber)){
//do your stuff
}