Я создаю приложение, которое должно вызывать функцию при получении SMS. Ранее я использовал Broadcast Receivers и NotificationListeners, но для этой конкретной цели мне нужно зарегистрировать этот Broadcast приемник. В настоящее время я не могу его зарегистрировать и не могу понять, почему.
Я пробовал несколько ответов на аналогичные проблемы переполнения стека, но по какой-то причине Log.d
, который я сейчас использую для устранения неполадок, не будет печататься при получении SMS. Я думаю, что я в корне неправильно понимаю проблему, хотя я не уверен, как.
Вот мой SmsListener.java
класс:
public class SmsListener extends BroadcastReceiver {
private SharedPreferences preferences;
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Log.d("Test","test");
}
}
}
Вот мой манифест:
<receiver android:name=".SmsListener">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Вот функция onCreate()
моей деятельности, которая должна вызывать ее:
BroadcastReceiver br = new SmsListener();
IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION);
registerReceiver(br,filter);
Спасибо за любую помощь. Я в полной растерянности.