Links

Additional features

Debug Mode

The debug mode allows you to have useful information on the console for debugging the application and the SDK. When enabled - SDK will print configuration parameter on startup and additional information on every API request that may help you during application development
To enable debugging add following record to your application's string.xml:
<resources>
...
<bool name="com.cloud4wi.sdk.wifi.debug_mode">true</bool>
</resources>
In DEBUG MODE sensitive informations (like customer attributes, credentials, keys ...) are written to the debug console.
To disable the DEBUG MODE before deploy/publish the application.

Firebase Messaging token

Cloud4WiDSK searches for com.google.firebase.messaging.FirebaseMessaging class in classpath. If such a class is present it means SDK can call getToken() methods and therefore update push-token.
To enable Firebase push notifications your application should be set it up accordingly. Please refer https://console.firebase.google.com
Your application needs to have MyFirebaseMessagingService
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public static String TAG = "MyFirebaseMessagingService";
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
Log.i(TAG, "Message data payload: " + remoteMessage.getData());
}
}
registered in AndroidManifest.xml
<application
...
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>
and google-services.json file retrieved from https://console.firebase.google.com placed next to your project build.gradle

Interlinking multiple applications on one device.

Cloud4WiSDKWiFi allows you to share information about installed Wi-Fi profiles among applications on the same Android device. This will help to avoid duplications of Wi-Fi profiles and make your application more flexible.
NOTE: this feature is optional, you may need it only if you integrate SDK in more than one application from your domain.
To enable interlinking you have to add the following in the 'application' section of your AndroidManifest.xml file:
NOTE: 'multiprocess' and 'exported' parameter values have to be set to 'true'
<application>
...
<provider
android:authorities="${applicationId}"
android:multiprocess="true"
android:exported="true"
android:name="com.cloud4wi.sdk.wifi.storage.C4WIMobileSDKContentProvider"/>
</application>
After adding required configuration to Android Manifest you have to supply SDK with the list of interlinked applications identifiers:
Cloud4WiSDKWiFi mobileSDK = new Cloud4WiSDKWiFi(getApplicationContext());
List<String> interlinkedC4WIMobileSDKApplications = new ArrayList<>();
interlinkedC4WIMobileSDKApplications.add("com.c4w.applicationtwo");
mobileSDK.setInterlinkedC4WIMobileSDKApplications(interlinkedC4WIMobileSDKApplications);