0

I created 2 broadcast receiver, one to get the SMS send status and another to get the delivery status! Each one is registered in manifest file! It was working fine till nogout! Now in Oreo receiver is not getting called ! I found that there is Background limitation sin Oreo! I like to know how could i tackle this problem! My Manifest is:

 <receiver
            android:name="com.arafa.atlink.receiver">
            <intent-filter>
                <action android:name="SMS_SENT" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.arafa.atlink.deliverreceiver">
            <intent-filter>
                <action android:name="SMS_DELIVERED" />
            </intent-filter>
        </receiver>

Broadcast reciever :

public class receiver extends BroadcastReceiver {
    PreferenceHelper prefs;
    @Override
    public void onReceive(Context context, Intent intent) {
        String message = null;
        prefs = new PreferenceHelper(context);
        Log.e("DATA FROM BROADCAST", "++++++++++++++++++++++++++ SmsSentReceiver "+ intent.getExtras().getInt("ucode") +" +++++++++++++++++++++++++++++++++++++++++");
        switch (getResultCode()) {
            case Activity.RESULT_OK:
                message = "Message sent for "+intent.getExtras().getInt("ucode");
                Log.e("DATA", message);
                pingserversend(intent.getExtras().getInt("ucode"),"Send");
                break;
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                message = "Error. Message not sent.";
                Log.e("DATA", message);
                pingserversend(intent.getExtras().getInt("ucode"),"Failed");
                break;
            case SmsManager.RESULT_ERROR_NO_SERVICE:
                message = "Error: No service.";
                Log.e("DATA", message);
                pingserversend(intent.getExtras().getInt("ucode"),"no-service");
                break;
            case SmsManager.RESULT_ERROR_NULL_PDU:
                message = "Error: Null PDU.";
                Log.e("DATA", message);
                pingserversend(intent.getExtras().getInt("ucode"),"null-pdo");
                break;
            case SmsManager.RESULT_ERROR_RADIO_OFF:
                message = "Error: Radio off.";
                Log.e("DATA", message);
                pingserversend(intent.getExtras().getInt("ucode"),"radio-off");
                break;
        }
    }
}

Geting broadcast:

   Intent intentSent = new Intent(Constants.SMS_SENT);
            intentSent.putExtra("ucode", ucode);
            PendingIntent piSend = PendingIntent.getBroadcast(this, ucode, intentSent, PendingIntent.FLAG_ONE_SHOT);
Arafa TechLink
  • 401
  • 1
  • 4
  • 5

0 Answers0