To integrate SDK library into your Android project you need to add Cloud4Wi repository. After that add the following dependency to your project's build.gradle along with 3 dependencies required by Cloud4Wi SDK as described below:
In order to connect your application with your Cloud4Wi account, you need to provide SDK with clientKey and clientSecret credentials.
Credentials may be provided to SDK either via configuration property or at runtime. Add two records into your application's string.xml as in examples below:
In following code example we will create new customer in the API and then install WPA2-Enterprise Wi-Fi profile on Android phone. After that when customer will be in range of Wi-Fi network with specified SSID - his device will connect automatically.
This example represents following use-case.
MobileSDK configuration. Setting API client credentials.
Read list of organization policies from API.
Creating new customer in API.
Verifying customer credentials in API.
Creation of WPA2-Enterprise Wi-Fi profile on Android device for test user to connect to test SSID.
Cloud4WiSDKWiFi mobileSDK =newCloud4WiSDKWiFi(getApplicationContext());try {mobileSDK.setAPIAuthParams("{client-key-value}","{client-secret-value}"); } catch (Exception e) {Log.e(TAG,"Cannot set API credentials: ", e); }mobileSDK.updateCustomerInfo(result -> {}, e -> {});/* * To register new customer we need to obtain required polices from API Server */mobileSDK.getListOfPolicies( policies -> {Log.i(TAG,"Got policies. Num = "+policies.size());logInfo("Got "+policies.size() +" policies: ");for (String p : policies) {logOutput(" "+ p); }Customer customer =newCustomer();customer.setFirstName("Test");customer.setLastName("Customer");customer.setEmail(customer.getUsername());/* * In order to register new customer all polices requested by API Server should be accepted */for (String policy : policies) {customer.addPolicy(policy,true); }/* * Call Server API to create new customer */mobileSDK.createCustomer(customer,null, customerCreateResponse -> {Log.i(TAG,"Customer successfully created.");logInfo("Customer successfully created.");/* * Assure new customer has been successfully created via Server API by checking newly created customer's credentials * This step is OPTIONAL */mobileSDK.getCustomerInfo(customerCreateResponse.getUsername(),customerCreateResponse.getPassword(), customerInfo -> {Log.i(TAG,"Credentials approved.");logInfo("Credentials approved.");/* * Here we are calling Android API to create WPA2-Enterprise Wi-Fi Profile for recently created new customer */mobileSDK.createWPA2EnterpriseProfile(customerCreateResponse.getUsername(),customerCreateResponse.getPassword(), wpa2EnterpriseProfile -> {Log.i(TAG,"Wi-Fi profile successfully created.");logInfo("Wi-Fi profile successfully created."); }, e -> {Log.e(TAG,"Failed to create Wi-Fi profile: ", e);logError("Failed to create Wi-Fi profile: "+e.getMessage()); }); }, e -> {Log.e(TAG,"Cannot approve credentials: ", e);logError("Cannot approve credentials - "+e.getMessage()); } ); }, e -> {Log.e(TAG,"Cannot create customer: ", e);logError("Cannot create customer - "+e.getMessage()); } ); }, e -> {Log.e(TAG,"Cannot get policies: "+e.getMessage());logError("Cannot get policies - "+e.getMessage()); } );
Keep the customer update
To track the last seen date of the customer and to keep always updated the remote push notification token (if applicable) it is necessary to call the method every time the app starts