Android SDK Changelog
A reference of bug fixes and improvements made to the Pushy Android SDK.
v1.0.84
- Additional reliability fixes for
PushySocketService
(Android 5 only)
v1.0.83
- Multiple reliability fixes for
PushySocketService
(Android 5 only)
v1.0.82
- Use
PushyJobService
on Android 6.0 and up (API level 23) - Fix #6 for
NullPointerException
inPushyJobService
due to AOSP platform bug (Android 5)
v1.0.81
- Fix #5 for
NullPointerException
inPushyJobService
due to AOSP platform bug (Android 5)
v1.0.80
- Fix for
JobService
memory leak detected by LeakCanary (#20)
v1.0.79
- Doze mode compatibility improvements
- Fix rare infinite reconnection loop caused by race condition
- Chinese manufacturer power saving compatibility improvements
Please declare the android.permission.SCHEDULE_EXACT_ALARM permission in your AndroidManifest.xml
if building your app with targetSdkVersion 31
(Android 12).
v1.0.78
- Fix crash #2 when compiling with
targetSdkVersion 31
and up (Android 12+)
v1.0.77
- Fix crash #1 when compiling with
targetSdkVersion 31
and up (Android 12+)
v1.0.76
- FCM Fallback Delivery: added support for multiple FCM
<service>
declarations with actioncom.google.firebase.MESSAGING_EVENT
v1.0.75
- Fix #2 for rare bug with
Pushy.setAppId()
when external storage permission is granted
v1.0.74
- Fix rare bug with
Pushy.setAppId()
when external storage permission is granted
v1.0.73
- Fix for
JobService
memory leak detected by LeakCanary (#17) - Fix for
UntaggedSocketViolation
in StrictMode (VmPolicy) (#18)
v1.0.72
- Added
Pushy.setJobServiceInterval()
for customizing the default JobService maintenance interval
v1.0.71
- Fix #4 for
NullPointerException
inPushyJobService
due to AOSP platform bug (Android 5)
v1.0.70
- Added support for
firebase-messaging:22.0.0
breaking changes - Fixed rare bug with
PushyJobService
entering a 15-second keep alive loop
v1.0.69
- Migrated from the
jCenter()
repository tomavenCentral()
v1.0.68
- Fixed rare crash when invoking
PushySocketService.setForgroundNotification()
v1.0.67
- Fixed rare case of ANR in
PushyJobService
due toSharedPreferences
invocation
v1.0.66
- Fix #3 for
NullPointerException
inPushyJobService
due to AOSP platform bug (Android 5)
v1.0.65
- Fix #2 for
NullPointerException
inPushyJobService
due to AOSP platform bug (Android 5)
v1.0.64
- Added
__json
intent extra for accesssing the raw JSONdata
payload in yourBroadcastReceiver
v1.0.63
- Fixed rare case of
NullPointerException
inPushyBroadcastManager
due to race condition
v1.0.62
- Fixed
NullPointerException
inPushyJobService
due to AOSP platform bug (Android 5)
v1.0.61
- Start using
PushyJobService
on Android 5.0 and up (API level 21)
v1.0.60
- Fixed rare case of ANR in
PushySocketService
due toSharedPreferences
invocation
v1.0.59
- Fixed bug where configuring a foreground service would result in an
IllegalStateException
v1.0.58
- The
android.permission.WRITE_EXTERNAL_STORAGE
permission is no longer used by the SDK - You may remove this permission from your
AndroidManifest.xml
and stop displaying a permission dialog if your app doesn't need access to external storage -
The SDK now makes use of the device's
ANDROID_ID
, in combination with the device manufacturer and model name, for unique device recognition between app reinstalls
v1.0.57
- Added the option to run as a foreground service to prevent background service interruption
v1.0.56
- Improved MQTT connection resiliency on Chinese manufacturer devices
v1.0.55
- Add invocation of
BufferedReader.close()
to fix Strict Mode warning (thanks @FutureGUIs)
v1.0.54
- Added support for FCM high priority fallback delivery to burst through Android power saving mode
v1.0.53
- MQTT connection security and performance improvements (see updated firewall requirements)
v1.0.52
- Dropped support for legacy devices without an auth key
v1.0.51
- Added
Pushy.isConnected()
for checking whether the underlying MQTT connection is established
v1.0.50
- Added support for multiple push
BroadcastReceiver
declarations inAndroidManifest.xml
v1.0.49
- Fixed delayed delivery of notifications to the push
BroadcastReceiver
in rare scenarios
v1.0.48
- Added
Pushy.setEnterpriseCertificate()
for self-signed certificate support in Pushy Enterprise
v1.0.47
- Added
Pushy.toggleExternalStoragePersistence()
for enabling/disabling device token persistence in the external storage
v1.0.46
- Fixed rare
NullPointerException
in internal MQTT connectivity library
v1.0.45
- Fixed bug where calling
Pushy.toggleNotifications(false)
would execute network I/O on main thread
v1.0.44
- Fixed bug where calling
Pushy.setAppId()
would clear a device's saved token on app reinstallation
v1.0.43
- Added an option to customize the
PushyJobService
maintenance interval
v1.0.42
- Fixed bug that prevented socket reconnection when switching from cellular to Wi-Fi
v1.0.41
- Added the option to proxify requests for strict firewalls (contact us for more info)
v1.0.40
- Migrated to
android.intent.action.MY_PACKAGE_REPLACED
for app update broadcasts (Android O)
v1.0.39
- Fixed rare bug that would prevent reconnection when keepalive mechanism fails
v1.0.38
- Removed
org.apache.http.legacy
dependency
v1.0.37
- Added support for passing a
NotificationCompat.Builder
toPushy.setNotificationChannel()
v1.0.36
- Added
Pushy.setNotificationChannel()
for automatically configuring a Notification Channel for your notifications (example usage)
v1.0.35
- Added support for
targetSdkVersion >= 26
(please definePushyJobService
in yourAndroidManifest.xml
)
v1.0.34
- Added
Pushy.setAppId()
for overriding package name dashboard app identification
v1.0.33
- Minor reliability improvements in rare scenarios
v1.0.32
- Added
Pushy.unregister(Context)
for clearing the device registration token
v1.0.31
- Fixed crash related to Android O background execution limits
v1.0.30
- Added a 15-second timeout for all SDK network requests
v1.0.29
- Added
PushyLogger.setLogListener()
for listening to the SDK logcat output
v1.0.28
- Added
Pushy.toggleWifiPolicyCompliance()
for complying with the device's Wi-Fi sleep policy
v1.0.27
- Bundled
com.fasterxml.jackson
inside the SDK
v1.0.26
- Fixed minor bug with
Pushy.setEnterpriseConfig()
for enterprise apps
v1.0.25
- Fixed minor bug with device authentication
v1.0.24
- Added topic subscribe/unsubscribe methods
v1.0.23
- Improved device token validation logic
v1.0.22
- Improved persisted token verification
v1.0.21
- Improved device authentication security
v1.0.20
- Improved the performance of the SDK
v1.0.19
- Improved migration compatibility for Enterprise apps
v1.0.18
- Fixed
SSLSocketFactory
warning whenStrictMode
is enabled
v1.0.17
- Miscellaneous usability improvements
v1.0.16
- Fixed minor bug when calling
Pushy.toggleNotifications()
afterPushy.listen()
v1.0.15
- Improved MQTT reconnection logic in unstable networks
v1.0.14
- Added
Pushy.setHeartbeatInterval()
to modify the default socket keep-alive interval
v1.0.13
- Miscellaneous reliability improvements
v1.0.12
- Reimplemented MQTT connection logic to improve overall reliability
v1.0.11
- Added
Pushy.toggleNotificationsEnabled()
to enable or disable push notifications for the device
v1.0.10
- Improved notification delivery reliability when app is running in the background
v1.0.9
- Improved token persistence algorithm for better device token tracking
- Bundled the
com.fasterxml.jackson
JSON parsing library in a separate.jar
file
v1.0.8
- Fixed bug with double/float values in push payloads
v1.0.7
- Fixed crash for Android 2.2 (Froyo) devices
v1.0.6
- Fixed ANR in background service (transparent to users)
- Added the option to disable
AndroidManifest
permission verification
v1.0.5
- Improved notification persistence mechanism
v1.0.4
- Fixed
NullPointerException
when network connectivity is unstable
v1.0.3
- Improved socket reconnection algorithm
v1.0.2
- The
android.permission.WRITE_EXTERNAL_STORAGE
permission is now optional
v1.0.1
- Improved token persistence between app reinstalls
- Added
AndroidManifest
permission verification for troubleshooting
v1.0.0
- Initial release