This fixes that some Badger classes (include DefaultBadger) failing to broadcast Intent on Android 8+ devices.
The cause of this issue is that BroadcastHelper.sendIntentExplicitly() broadcasts implicit intents instead of explicit intents.
The original code uses ResolveInfo#resolvePackageName as the package name for the target home app.
My solution is to get the package name from ActivityInfo#packageName.
I have confirmed that DefaultBadger works fine on an Android 9 device with this fix.
This fixes that some Badger classes (include DefaultBadger) failing to broadcast Intent on Android 8+ devices. The cause of this issue is that
BroadcastHelper.sendIntentExplicitly()
broadcasts implicit intents instead of explicit intents.The original code uses
ResolveInfo#resolvePackageName
as the package name for the target home app.However,
ResolveInfo#resolvePackageName
does not mean the package name of the target app and is almost always null. https://developer.android.com/reference/android/content/pm/ResolveInfo#resolvePackageName As a result, the sent intent becomes an implicit intent because package name is not set. And on Android 8 and later, broadcasting implicit intents is prohibited. https://developer.android.com/guide/components/broadcasts#android_80My solution is to get the package name from
ActivityInfo#packageName
. I have confirmed that DefaultBadger works fine on an Android 9 device with this fix.