|
|
Migration guide
|
|
|
===============
|
|
|
|
|
|
Please refer to each individual version step when migrating to a newer SDK. .x release typically require a small update such as changed manifest definitions, while .x.x releases may rename or move a method or constant too.
|
|
|
|
|
|
The [main integration document](https://github.com/ezeeworld/B4S-Android/blob/master/README.md) always describes the most up-to-date integration requirements.
|
|
|
|
|
|
## Upgrade to 1.5.4
|
|
|
|
|
|
No changes required.
|
|
|
|
|
|
## Upgrade to 1.5.2
|
|
|
|
|
|
If multiple B4S apps are installed, the SDK will now automatically choose the most recent SDK version to scan for beacons. This requires additional intent filter definitions for the `MonitoringManager` service. Please ensure that it is defined as:
|
|
|
|
|
|
```xml
|
|
|
<service
|
|
|
android:name="com.ezeeworld.b4s.android.sdk.monitor.MonitoringManager"
|
|
|
android:exported="true"
|
|
|
tools:ignore="ExportedService">
|
|
|
<intent-filter>
|
|
|
<action android:name="com.ezeeworld.b4s.android.sdk.monitor.B4S_ENSURE_SCANNING" />
|
|
|
<action android:name="com.ezeeworld.b4s.android.sdk.monitor.B4S_QUERY_SCHEDULE" />
|
|
|
<action android:name="com.ezeeworld.b4s.android.sdk.monitor.B4S_SCHEDULE_RESULT" />
|
|
|
<action android:name="com.ezeeworld.b4s.android.sdk.monitor.B4S_QUERY_VERSION" />
|
|
|
<action android:name="com.ezeeworld.b4s.android.sdk.monitor.B4S_REPORT_VERSION" />
|
|
|
</intent-filter>
|
|
|
</service>
|
|
|
```
|
|
|
|
|
|
## Upgrade to 1.5.0
|
|
|
|
|
|
It is no longer necessary (nor should you) to extend from the `B4SNotificationActivity` or manage a `B4SNotificationPopup` manually. Please remove manual references to these class from your code. Not that, as part of this change, you DO have to supply your `Application` object to the `B4SSettings.init(Application, String)` method.
|
|
|
|
|
|
The deep linking intent extra field constants, such as `INTENT_TITLE` and `INTENT_ACTIONID`, were moved from the `MonitoringManager` to the `NotificationService` class.
|
|
|
|
|
|
The scanning service was updated for greater speed and reliability, especially on devices with poor Bluetooth hardware. The demo mode (which was exclusively used for testing) is deprecated so the `B4SSettings.setDemoMode(boolean)` was removed.
|
|
|
|
|
|
On Android 6.0 a new runtime permission system was introduced, and this is now natively supported. When the user has not (yet) given permissions for the `android.permission-group.LOCATION` group, the SDK will show a request pop-up. Note that no alerts (pop-ups) will be shown if location services or bluetooth are disabled, although this [may now be configured](https://github.com/ezeeworld/B4S-Android-SDK/blob/master/README.md#alert-for-requirements).
|
|
|
|
|
|
The `B4SSettings.storeCustomerFields()` method was slightly changed, as it is no longer needed to supply a location while a `userId` parameter was added.
|
|
|
|
|
|
## Upgrade to 1.4.5
|
|
|
|
|
|
[Push messaging support](https://github.com/ezeeworld/B4S-Android-SDK/blob/master/README.md#push-messaging) was added, for which a new `B4SSettings.setPushMessagingSenderId(String)` method was introduced. As part of the feature, the notification generation was moved and a new service declaration is required:
|
|
|
|
|
|
```xml
|
|
|
<service
|
|
|
android:name="com.ezeeworld.b4s.android.sdk.notifications.NotificationService"
|
|
|
android:exported="false" />
|
|
|
```
|
|
|
For push messaging integration itself, please refer to the [full integration document](https://github.com/ezeeworld/B4S-Android-SDK/blob/master/README.md#configure-the-sdk).
|
|
|
|