4.0.5 version
Table of Contents
- What’s New
- Setup
- Usage
- Functions
- Events
- Navigation
- CrowdConnected location provider
- IndoorAtlas location provider
What’s New in ExpoFP Fplan version 4.0.5
Bugs have been fixed.
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:4.0.5'
implementation 'com.expofp:fplan:4.0.5'
//If you want to use navigation from CrowdConnected, add a link to the package
//implementation 'com.expofp:crowdconnected:4.0.5'
//If you want to use navigation from IndoorAtlas, add a link to the package
//implementation 'com.expofp:indooratlas:4.0.5'
...
}
Add permissions in “AndroidManifest.xml” file:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
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:
Settings settings = new Settings("https://demo.expofp.com")
//.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(@Nullable String id, @Nullable String name) {
}
@Override
public void onDirection(@Nullable Route route) {
}
@Override
public void onDetails(@Nullable Details details) {
}
@Override
public void onExhibitorCustomButtonClick(String externalId, int buttonNumber, String buttonUrl) {
}
@Override
public void onMessageReceived(@Nullable 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(@Nullable String id, @Nullable String name) {
}
Route create event:
@Override
public void onDirection(@Nullable Route route) {
}
Receive message event:
@Override
public void onMessageReceived(@Nullable String message) {
}
Details open event:
@Override
public void onDetails(@Nullable Details details) {
}
Exhibitor custom button click event:
@Override
public void onExhibitorCustomButtonClick(String externalId, int buttonNumber, String buttonUrl) {
}
Navigation
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:
Add Maven repository reference to settings.gradle file(in root of your project):
repositories {
maven { url "https://maven2.crowdconnected.net/" }
...
}
Add dependency to build.gradle file(in module):
dependencies {
implementation 'com.expofp:crowdconnected:4.0.5'
implementation 'net.crowdconnected.android.core:android-core:1.3.4'
implementation 'net.crowdconnected.android.ips:android-ips:1.3.4'
implementation 'net.crowdconnected.android.geo:android-geo:1.3.4'
...
}
Add permissions in “AndroidManifest.xml” file:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
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:
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/" }
...
}
Add dependency to build.gradle file(in module):
dependencies {
implementation 'com.expofp:indooratlas:4.0.5'
implementation "com.indooratlas.android:indooratlas-android-sdk:3.5.5@aar"
...
}
Add permissions in “AndroidManifest.xml” file:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
LocationProvider initialization:
LocationProvider locationProvider = new com.expofp.indooratlas.IndoorAtlasProvider(getApplication(), "API_KEY", "API_SECRET_KEY");