SDK Initialization

You only need a single call to initialize the SDK. Make sure you have the Apps' API Key handy for this.

public class MainActivity extends Activity {
 
    protected static final String C360_API_KEY = <APP KEY>;
    protected static final String GCM_SENDERID = <GCM_SENDERID>;
    protected String userId = <USER IDENTIFIER>;
    ...
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ScioContext.initializeSDK(this, C360_API_KEY, GCM_SENDERID, userId, false);
        ...
    }
}

That's it, your basic integration is done! Build and Run the project to verify the logcat in the Android Monitor tab has SCIOSDK Initialization Complete. message.

If you wish to customize how Push Notifications are handled, visit the next section on Advanced Integration.

🚧

Permissions

Make sure the app requests for runtime location permissions using ActivityCompat.requestPermissions and call initializeSDK inside the onRequestPermissions() as shown below.
This is required from Android 6.0 and above.

// start: request permissions in your onCreate() method.
if (ContextCompat.checkSelfPermission(thisActivity,
                android.Manifest.permission.ACCESS_FINE_LOCATION)
        != PackageManager.PERMISSION_GRANTED) {
  ActivityCompat.requestPermissions(thisActivity,
                new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
                YOUR_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
}
// end: request permissions in your onCreate() method.

// implement your permission callback and initialize SDK after permissions are granted
@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case YOUR_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        ScioContext.initializeSDK(this, C360_API_KEY, GCM_SENDERID, userId, false);
            }
        }
    }
}