Link Search Menu Expand Document

3.0.6 version

Table of Contents

What’s New in ExpoFP Fplan version 3.0.6

Dependencies have been updated in this version of the SDK, and the process of caching files has also been optimized.

Setup

Add Maven repository reference to settings.gradle file(in root of your project):

repositories {
    maven { url "https://s01.oss.sonatype.org/content/repositories/releases" }
    
    //If you want to use navigation from CrowdConnected, add a link to the repository
    //maven { url "https://maven2.crowdconnected.net/" }
	
    //If you want to use navigation from IndoorAtlas, add a link to the repository
    //maven { url "https://dl.cloudsmith.io/public/indooratlas/mvn-public/maven/" }
    ...
}

Add dependency to build.gradle file(in module):

dependencies {
    implementation 'com.expofp:common:3.0.6'
    implementation 'com.expofp:fplan:3.0.6'
    
    //If you want to use navigation from CrowdConnected, add a link to the package
    //implementation 'com.expofp:crowdconnected:3.0.6'
    
    //If you want to use navigation from IndoorAtlas, add a link to the package
    //implementation 'com.expofp:indooratlas:3.0.6'
    
    ... 
}

Usage

Add FplanView to layout:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.expofp.fplan.FplanView
        android:id="@+id/fplanView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Init FplanView:

//noOverlay - Hides the panel with information about exhibitors
Settings settings = new Settings("https://demo.expofp.com", false)
                //.withLocationProvider(new CrowdConnectedProvider(getApplication(), new com.expofp.crowdconnected.Settings("APP_KEY","TOKEN","SECRET")))
                //.withLocationProvider(new IndoorAtlasProvider(getApplication(), "API_KEY", "API_SECRET_KEY"))
                //.withGlobalLocationProvider()
                .withEventsListener(new FplanEventsListener() {
                    @Override
                    public void onFpConfigured() {
                    }

                    @Override
                    public void onBoothClick(String s) {
                    }

                    @Override
                    public void onDirection(Route route) {
                    }
                    
                    @Override
                    public void onMessageReceived(String message) {
                    }
                    
                });

_fplanView = findViewById(R.id.fplanView);
_fplanView.init(settings);

Stop FplanView.
After you finish working with FplanView, you need to stop it.
To do this, you need to call the ‘destroy’ function:

_fplanView = findViewById(R.id.fplanView);
_fplanView.destroy();

Functions

Select booth:

_fplanView.selectBooth("720");

Select exhibitor:

_fplanView.selectExhibitor("ExpoPlatform");

Build route:

_fplanView.selectRoute("720", "751");

Set current position(Blue-dot):

_fplanView.selectCurrentPosition(2875, 1734);

Clear floor plan:

_fplanView.clear();

Events

Floor plan ready event:

@Override
public void onFpConfigured() {
}

Select booth event:

@Override
public void onBoothClick(String boothName) {
}

Route create event:

@Override
public void onDirection(Route route) {
}

Receive message event:

@Override
public void onMessageReceived(String message) {
}

There are 2 ways to use navigation in FplanView. The first way is to explicitly specify the provider in the FplanView settings. In this case, FplanView will start and stop the LocationProvider on its own.

LocationProvider locationProvider = ...;

Settings settings = new Settings("https://demo.expofp.com", false)
                .withLocationProvider(locationProvider);

_fplanView = findViewById(R.id.fplanView);
_fplanView.init(settings);

The second way is to run the GlobalLocationProvider when the program starts:

LocationProvider locationProvider = ...;

GlobalLocationProvider.init(locationProvider);
GlobalLocationProvider.start();

When using the GlobalLocationProvider in the FplanView settings, you need to call the ‘withGlobalLocationProvider’ function:

Settings settings = new Settings("https://demo.expofp.com", false)
                 .withGlobalLocationProvider();

_fplanView = findViewById(R.id.fplanView);
_fplanView.init(settings);

When the program terminates, the GlobalLocationProvider must also be stopped:

GlobalLocationProvider.stop();

CrowdConnected location provider

Setup:

  1. Add Maven repository reference to settings.gradle file(in root of your project):
repositories {
    maven { url "https://maven2.crowdconnected.net/" }
    ...
}
  1. Add dependency to build.gradle file(in module):
dependencies {
    implementation 'com.expofp:crowdconnected:3.0.6'
    implementation 'net.crowdconnected.android.core:android-core:1.3.1'
    implementation 'net.crowdconnected.android.ips:android-ips:1.3.1'
    implementation 'net.crowdconnected.android.geo:android-geo:1.3.1'
    
    ... 
}

LocationProvider initialization:

com.expofp.crowdconnected.Settings lpSettings = new com.expofp.crowdconnected.Settings("APP_KEY", "TOKEN", "SECRET", Mode.IPS_ONLY);
LocationProvider locationProvider = new com.expofp.crowdconnected.CrowdConnectedProvider(getApplication(), lpSettings);

Aliases:

com.expofp.crowdconnected.Settings lpSettings = new com.expofp.crowdconnected.Settings("APP_KEY", "TOKEN", "SECRET", Mode.IPS_ONLY);
lpSettings.setAlias("KEY_1", "VALUE_1");
lpSettings.setAlias("KEY_2", "VALUE_2");
LocationProvider locationProvider = new com.expofp.crowdconnected.CrowdConnectedProvider(getApplication(), lpSettings);

Notification settings:

com.expofp.crowdconnected.Settings lpSettings = new com.expofp.crowdconnected.Settings("APP_KEY", "TOKEN", "SECRET", Mode.IPS_ONLY);
lpSettings.setServiceNotificationInfo("NOTIFICATION_TEXT", SERVICE_ICON);
LocationProvider locationProvider = new com.expofp.crowdconnected.CrowdConnectedProvider(getApplication(), lpSettings);

IndoorAtlas location provider

Setup:

  1. Add Maven repository reference to settings.gradle file(in root of your project):
repositories {
    maven { url "https://dl.cloudsmith.io/public/indooratlas/mvn-public/maven/" }
    ...
}
  1. Add dependency to build.gradle file(in module):
dependencies {
    implementation 'com.expofp:indooratlas:3.0.6'
    implementation "com.indooratlas.android:indooratlas-android-sdk:3.5.5@aar"
    
    ... 
}

LocationProvider initialization:

LocationProvider locationProvider = new com.expofp.indooratlas.IndoorAtlasProvider(getApplication(), "API_KEY", "API_SECRET_KEY");