Я разрабатываю приложение для Android, которое будет обнаруживать и сканировать SMS для своего контента, даже когда мое приложение будет закрыто. Я знаю, что BroadcastReceiver - это решение для этого, и я разработал код, но, к сожалению, не получаю вывод, как ожидалось.Обнаружение входящих SMS с помощью BroadcastReceiver не работает
Вот мой файл активности
public class SMSBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = SMSBroadcastReceiver.class.getSimpleName();
public static final String SMS_CONTENT = "sms_content";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "Intent recieved: " + intent.getAction());
Cursor c = context.getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null);
c.moveToFirst();
String smsBody = c.getString(12);
Toast.makeText(context, "SMS RECEIVED:", Toast.LENGTH_LONG).show();
Toast.makeText(context, smsBody, Toast.LENGTH_LONG).show();
}
}
Я также включил эти строки в моей Manifest
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<receiver android:name=".SMSBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
Plz помочь мне, чтобы выяснить, что происходит не так, и я не в состоянии Тост входящих SMS ...
«Телефония» должна быть заглавной в «android.provider.telephony.SMS_RECEIVED» в манифесте. То есть, это должен быть «android.provider.Telephony.SMS_RECEIVED». Также обратите внимание, что новое сообщение, возможно, не было отправлено Поставщику при получении этой трансляции. –
Взгляните на этот проект: https://github.com/vivdub/DynamicSMSReceiver/commit/e807dfa0a2f02da553e4d68096a6842ad8351d06 –