I only found out about this because I did not set the receiver category correctly.
Since I put all the source code in the library project and referenced it with each individual application, I need to rename 3 different places in the manifest.
one)
<permission android:name="digital.dispatch.mobilebooker.base.permission.C2D_MESSAGE" android:protectionLevel="signature" />
to
<permission android:name="digital.dispatch.mobilebooker.(my app name).permission.C2D_MESSAGE" android:protectionLevel="signature" />
2)
<uses-permission android:name="digital.dispatch.mobilebooker.base.permission.C2D_MESSAGE" />
to
3)
<category android:name="digital.dispatch.mobilebooker.base" />
to
<category android:name="digital.dispatch.mobilebooker.(my app name)" />
The reason it worked on the 4.0+ device is because I made only the first two, but not 3). Since the 4.0+ device does not care about the receiver category, it worked. However, when I test the 2.3.3 device, this category really matters and does not cause any answer.
Hope this helps anyone else facing the same situation.
Cookie mon
source share