Class MeasurementPlugin

  • All Implemented Interfaces:
    android.content.ComponentCallbacks, android.content.ComponentCallbacks2, android.view.KeyEvent.Callback, android.view.LayoutInflater.Factory, android.view.LayoutInflater.Factory2, android.view.View.OnCreateContextMenuListener, android.view.Window.Callback

    public abstract class MeasurementPlugin
    extends android.app.Activity
    Extend the measurement plugin class to add an external measurement logger to the NEON Signal Mapper application. The measurement plugin should define a set of signals it will log and present a settings activity (if necessary) that will store any parameters needed to connect to the external device. When signal mapper begins logging, the plugin should connect to the external device, retrieve measurements, and pass them to signal mapper via the MeasurementCallback.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  MeasurementPlugin.MeasurementCallback
      The definition of the Measurement callback that accepts signal measurements
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected MeasurementPlugin.MeasurementCallback measurementCallback
      The callback that is used to send signal measurements to the NEON Signal Mapper to be displayed and stored.
      static java.lang.String SIGNAL_MAPPER_PLUGIN
      In order for the Measurement Plugin to be loaded by Signal Mapper, the class that extends measurement plugin must register as an activity in its manifest and have a category intent filter with this string example:
      protected android.content.Context signalMapperContext
      The context of the parent application - NEON Signal Mapper.
      • Fields inherited from class android.app.Activity

        DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
      • Fields inherited from class android.content.Context

        ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APP_SEARCH_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_INCLUDE_CAPABILITIES, BIND_NOT_FOREGROUND, BIND_NOT_PERCEPTIBLE, BIND_WAIVE_PRIORITY, BIOMETRIC_SERVICE, BLOB_STORE_SERVICE, BLUETOOTH_SERVICE, BUGREPORT_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_DIAGNOSTICS_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_HASH_SERVICE, DISPLAY_SERVICE, DOMAIN_VERIFICATION_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FILE_INTEGRITY_SERVICE, FINGERPRINT_SERVICE, GAME_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_COMMUNICATION_SERVICE, MEDIA_METRICS_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, PEOPLE_SERVICE, PERFORMANCE_HINT_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, ROLE_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_IMS_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_MANAGER_SERVICE, VIBRATOR_SERVICE, VPN_MANAGEMENT_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
      • Fields inherited from interface android.content.ComponentCallbacks2

        TRIM_MEMORY_BACKGROUND, TRIM_MEMORY_COMPLETE, TRIM_MEMORY_MODERATE, TRIM_MEMORY_RUNNING_CRITICAL, TRIM_MEMORY_RUNNING_LOW, TRIM_MEMORY_RUNNING_MODERATE, TRIM_MEMORY_UI_HIDDEN
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract MeasurementPlugin GetPlugin()
      This is the function that lets NEON Signal Mapper load your plugin.
      protected android.content.Intent GetRemoteActivityIntent​(java.lang.String packageName, java.lang.String className)
      Helper function that will get the proper intent to allow Signal Mapper to start a local activity remotely.
      protected android.content.Intent GetRemoteServiceIntent​(java.lang.String packageName, java.lang.String className)
      Helper function that will get the proper intent to allow Signal Mapper to start a local service remotely.
      abstract java.lang.String getSettingsTitle()
      If you present a settings activity - this is the string that will be displayed
      abstract java.util.List<SignalDefinition> GetSignalDefinitions()
      In order for NEON Signal Mapper to properly interpret the signal measurements from the plugin, it needs to have the definitions of all signals being logged in this plugin.
      abstract boolean hasSettingsActivity()
      If any settings are needed for a connection to your instrument, you can indicate that there is an available settings activity and it will appear as a menu item in NEON Signal Mapper
      void SetCallbacks​(MeasurementPlugin.MeasurementCallback onMeasurementAvailable)
      NEON Signal Mapper can set the measurement callback here for the plugin to use
      void SetContext​(android.content.Context context)
      NEON Signal Mapper can set the context here for the plugin to use
      abstract void StartLogging()
      When NEON Signal Mapper starts mapping, it will call this function to indicate to the plugin that it should begin sending signal measurements to be displayed and stored.
      abstract void StartSettingsActivity()
      When the user clicks on your menu item in Signal Mapper, it will start the settings activity by calling this function
      abstract void StopLogging()
      When NEON Signal Mapper stops mapping, you should shut down any services that are collecting signal measurements and stop sending them
      • Methods inherited from class android.app.Activity

        addContentView, attachBaseContext, closeContextMenu, closeOptionsMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, dump, enterPictureInPictureMode, enterPictureInPictureMode, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getMenuInflater, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSplashScreen, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLaunchedFromBubble, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onActivityResult, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onBackPressed, onChildTitleChanged, onConfigurationChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelMenu, onCreatePanelView, onCreateThumbnail, onCreateView, onCreateView, onDestroy, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onGetDirectActions, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onLowMemory, onMenuItemSelected, onMenuOpened, onMultiWindowModeChanged, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onNewIntent, onOptionsItemSelected, onOptionsMenuClosed, onPanelClosed, onPause, onPerformDirectAction, onPictureInPictureModeChanged, onPictureInPictureModeChanged, onPictureInPictureRequested, onPictureInPictureUiStateChanged, onPostCreate, onPostCreate, onPostResume, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onPreparePanel, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRequestPermissionsResult, onRestart, onRestoreInstanceState, onRestoreInstanceState, onResume, onRetainNonConfigurationInstance, onSaveInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onStart, onStateNotSaved, onStop, onTitleChanged, onTopResumedActivityChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, registerActivityLifecycleCallbacks, registerForContextMenu, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setContentView, setContentView, setContentView, setDefaultKeyMode, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setInheritShowWhenLocked, setIntent, setLocusContext, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, setTranslucent, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityForResult, startActivityForResult, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterForContextMenu
      • Methods inherited from class android.view.ContextThemeWrapper

        applyOverrideConfiguration, getAssets, getResources, getTheme, setTheme
      • Methods inherited from class android.content.ContextWrapper

        bindIsolatedService, bindService, bindService, bindServiceAsUser, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingOrSelfUriPermissions, checkCallingPermission, checkCallingUriPermission, checkCallingUriPermissions, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, checkUriPermissions, clearWallpaper, createAttributionContext, createConfigurationContext, createContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, createWindowContext, createWindowContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAttributionSource, getAttributionTag, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getDisplay, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getParams, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, isUiContext, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup
      • Methods inherited from class android.content.Context

        getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, sendBroadcastWithMultiplePermissions, unregisterComponentCallbacks
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface android.view.Window.Callback

        onPointerCaptureChanged
    • Field Detail

      • SIGNAL_MAPPER_PLUGIN

        public static final java.lang.String SIGNAL_MAPPER_PLUGIN
        In order for the Measurement Plugin to be loaded by Signal Mapper, the class that extends measurement plugin must register as an activity in its manifest and have a category intent filter with this string example:
        See Also:
        Constant Field Values
      • signalMapperContext

        protected android.content.Context signalMapperContext
        The context of the parent application - NEON Signal Mapper. This context can be used to start activities and services from the MeasurementPlugin class.
      • measurementCallback

        protected MeasurementPlugin.MeasurementCallback measurementCallback
        The callback that is used to send signal measurements to the NEON Signal Mapper to be displayed and stored. This callback will be serviced only when Signal Mapper is actively mapping
    • Constructor Detail

      • MeasurementPlugin

        public MeasurementPlugin()
    • Method Detail

      • GetPlugin

        public abstract MeasurementPlugin GetPlugin()
        This is the function that lets NEON Signal Mapper load your plugin. You must return your plugin class "return this;"
        Returns:
        The measurement plugin
      • GetSignalDefinitions

        public abstract java.util.List<SignalDefinition> GetSignalDefinitions()
        In order for NEON Signal Mapper to properly interpret the signal measurements from the plugin, it needs to have the definitions of all signals being logged in this plugin.
        Returns:
        A list of the signal definitions that are being logged in this plugin
      • StartLogging

        public abstract void StartLogging()
        When NEON Signal Mapper starts mapping, it will call this function to indicate to the plugin that it should begin sending signal measurements to be displayed and stored. This is the time to start a service that connects to your sensor and begins logging signal measurements via the MeasurementCallback
      • StopLogging

        public abstract void StopLogging()
        When NEON Signal Mapper stops mapping, you should shut down any services that are collecting signal measurements and stop sending them
      • hasSettingsActivity

        public abstract boolean hasSettingsActivity()
        If any settings are needed for a connection to your instrument, you can indicate that there is an available settings activity and it will appear as a menu item in NEON Signal Mapper
      • getSettingsTitle

        public abstract java.lang.String getSettingsTitle()
        If you present a settings activity - this is the string that will be displayed
      • StartSettingsActivity

        public abstract void StartSettingsActivity()
        When the user clicks on your menu item in Signal Mapper, it will start the settings activity by calling this function
      • GetRemoteServiceIntent

        protected android.content.Intent GetRemoteServiceIntent​(java.lang.String packageName,
                                                                java.lang.String className)
        Helper function that will get the proper intent to allow Signal Mapper to start a local service remotely. You need to include the package name and name of the service class then you can start a service with signalMapperContext.startService(Intent intent) with this intent. example: Intent intent = GetRemoteServiceIntent("com.example.companyx","com.example.companx.LoggerService"); signalMapperContext.startService(intent);
      • GetRemoteActivityIntent

        protected android.content.Intent GetRemoteActivityIntent​(java.lang.String packageName,
                                                                 java.lang.String className)
        Helper function that will get the proper intent to allow Signal Mapper to start a local activity remotely. You need to include the package name and name of the activity class then it can be started with signalMapperContext.startActivity(Intent intent). example: Intent intent = GetRemoteActivityIntent("com.example.companyx","com.example.companx.SettingsActivity"); signalMapperContext.startActivity(intent);
      • SetContext

        public void SetContext​(android.content.Context context)
        NEON Signal Mapper can set the context here for the plugin to use
      • SetCallbacks

        public void SetCallbacks​(MeasurementPlugin.MeasurementCallback onMeasurementAvailable)
        NEON Signal Mapper can set the measurement callback here for the plugin to use