Migrate Android SDK to release 3.8.1

Overview

When migrating the app from older SDK to 3.8.1, do the following:

1. Remove all the SDK-related entries from AndroidManifest.xml.

The SDK now supports manifest merging. Rather than adding code to the manifest, you'll now add lines indicating you want to remove the features you don't use.

2. If you do not use the beacons feature

Add the following to the manifest to remove the beacon-related SDK manifest entries.

<uses-permission
  android:name="android.permission.BLUETOOTH"
  tools:node="remove"/>
<uses-permission
  android:name="android.permission.BLUETOOTH_ADMIN"
  tools:node="remove"/>
<service
  android:name="co.acoustic.mobile.push.sdk.beacons.MceBluetoothScanner"
  tools:node="remove"/>
<service
  android:name="co.acoustic.mobile.push.sdk.beacons.BeaconsVerifier"
  tools:node="remove"/>

3. If you do not use the geofences feature

Add the following to the manifest to remove the geofence-related SDK manifest entries.

<receiver
  android:name="co.acoustic.mobile.push.sdk.location.GeofenceBroadcastReceiver"
  tools:node="remove"/>

4. If you do not use location at all

Add the following to the manifest (in addition to the geofences and beacons additions stated above) to remove the location related SDK manifest entries.

<uses-permission
  android:name="android.permission.ACCESS_FINE_LOCATION"
  tools:node="remove"/>
<uses-permission
  android:name="android.permission.ACCESS_COARSE_LOCATION"
  tools:node="remove"/>
<uses-permission
  android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
  tools:node="remove"/>
<receiver
  android:name="co.acoustic.mobile.push.sdk.location.LocationBroadcastReceiver"
  tools:node="remove"/>
<service
  android:name="co.acoustic.mobile.push.sdk.location.LocationRetrieveService"
  tools:node="remove"/>
<service
  android:name="co.acoustic.mobile.push.sdk.location.LocationEventsIntentService"
  tools:node="remove"/>
<service
  android:name="co.acoustic.mobile.push.sdk.location.LocationSyncAlarmListener"
 tools:node="remove"/>
<receiver
  android:name="co.acoustic.mobile.push.sdk.location.LocationUpdateCaller"
  tools:node="remove"/>

5. If you use your own Firebase implementation

Add the following in the manifest to remove the default SDK Firebase implementation.

<service
  android:name="co.acoustic.mobile.push.sdk.messaging.fcm.FcmMessagingService"
  tools:node="remove">
</service>