Package com.jme3.app
Class AndroidHarness
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
com.jme3.app.AndroidHarness
- All Implemented Interfaces:
android.content.ComponentCallbacks
,android.content.ComponentCallbacks2
,android.content.DialogInterface.OnClickListener
,android.view.KeyEvent.Callback
,android.view.LayoutInflater.Factory
,android.view.LayoutInflater.Factory2
,android.view.View.OnCreateContextMenuListener
,android.view.Window.Callback
,InputListener
,TouchListener
,SystemListener
public class AndroidHarness
extends android.app.Activity
implements TouchListener, android.content.DialogInterface.OnClickListener, SystemListener
AndroidHarness
wraps a jme application object and runs it on
Android-
Field Summary
Modifier and TypeFieldDescriptionprotected LegacyApplication
The jme3 application objectprotected String
The application class to startprotected String
Sets the type of Audio Renderer to be used.protected OGLESContext
protected int
Sets the desired number of Alpha bits for the surfaceview.protected int
Sets the desired RGB size for the surfaceview.protected int
The number of depth bits specifies the precision of the depth buffer.protected int
Sets the number of samples to use for multisampling.
Leave 0 (default) to disable multisampling.
Set to 2 or 4 to enable multisampling.protected int
Set the number of stencil bits.protected String
Message of the exit dialog, default is "Use your home key to bring this app into the background or exit to terminate it."protected String
Title of the exit dialog, default is "Do you want to exit?"protected boolean
if true finish this activity when the jme app is stoppedprotected android.widget.FrameLayout
protected int
Set the desired frame rate.protected boolean
set to false if you don't want the harness to handle the exit hookprotected boolean
protected boolean
If true Android Sensors are used as simulated Joysticks.protected boolean
If true KeyEvents are generated from TouchEventsprotected static final Logger
protected boolean
If true MouseEvents are generated from TouchEventsprotected boolean
Flip X axisprotected boolean
Flip Y axisprotected boolean
Set the screen window mode.protected boolean
if screenShowTitle is true while screenFullScreen is false, then the title bar is also displayed under the notification barprotected android.widget.ImageView
protected int
Splash Screen picture Resource ID.protected android.opengl.GLSurfaceView
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, 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_NOT_FOREGROUND, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FINGERPRINT_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_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, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_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_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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
destroy()
Callback to indicate that the context has been destroyed (either by the user or requested by the application itself).void
Called when the application gained focus.void
handleError
(String errorMsg, Throwable t) Called when an error has occurred.void
Callback to indicate the application to initialize.protected void
Removes the standard Android log handler due to an issue with not logging entries lower than INFO level and adds a handler that produces JME formatted log messages.void
void
Called when the application lost focus.void
onClick
(android.content.DialogInterface dialog, int whichButton) Called by the android alert dialog, terminate the activity and OpenGL renderingvoid
onCreate
(android.os.Bundle savedInstanceState) protected void
protected void
onPause()
protected void
protected void
onResume()
protected void
onStart()
protected void
onStop()
void
onTouch
(String name, TouchEvent evt, float tpf) Gets called by the InputManager on all touch/drag/scale eventsvoid
void
requestClose
(boolean esc) Called when the user requests to close the application.void
rescale
(float x, float y) Called to notify the application that the scale has changed.void
reshape
(int width, int height) Called to notify the application that the resolution has changed.void
update()
Callback to update the application state, and render the scene to the back buffer.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, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onActivityResult, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onBackPressed, onChildTitleChanged, onConfigurationChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelMenu, onCreatePanelView, onCreateThumbnail, onCreateView, onCreateView, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onLowMemory, onMenuItemSelected, onMenuOpened, onMultiWindowModeChanged, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onNewIntent, onOptionsItemSelected, onOptionsMenuClosed, onPanelClosed, onPictureInPictureModeChanged, onPictureInPictureModeChanged, onPostCreate, onPostCreate, onPostResume, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onPreparePanel, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRequestPermissionsResult, onRestoreInstanceState, onRestoreInstanceState, onSaveInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onStateNotSaved, onTitleChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, 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, setIntent, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, 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, unregisterForContextMenu
Methods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, getAssets, getResources, getTheme
Methods inherited from class android.content.ContextWrapper
bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver
Methods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, 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 Details
-
logger
-
appClass
The application class to start -
app
The jme3 application object -
eglBitsPerPixel
protected int eglBitsPerPixelSets the desired RGB size for the surfaceview. 16 = RGB565, 24 = RGB888. (default = 24) -
eglAlphaBits
protected int eglAlphaBitsSets the desired number of Alpha bits for the surfaceview. This affects how the surfaceview is able to display Android views that are located under the surfaceview jME uses to render the scenegraph. 0 = Opaque surfaceview background (fastest) 1->7 = Transparent surfaceview background 8 or higher = Translucent surfaceview background (default = 0) -
eglDepthBits
protected int eglDepthBitsThe number of depth bits specifies the precision of the depth buffer. (default = 16) -
eglSamples
protected int eglSamplesSets the number of samples to use for multisampling.
Leave 0 (default) to disable multisampling.
Set to 2 or 4 to enable multisampling. -
eglStencilBits
protected int eglStencilBitsSet the number of stencil bits. (default = 0) -
frameRate
protected int frameRateSet the desired frame rate. If frameRate higher than 0, the application will be capped at the desired frame rate. (default = -1, no frame rate cap) -
audioRendererType
Sets the type of Audio Renderer to be used.Android MediaPlayer / SoundPool can be used on all supported Android platform versions (2.2+)
OpenAL Soft uses an OpenSL backend and is only supported on Android versions 2.3+.Only use ANDROID_ static strings found in AppSettings
-
joystickEventsEnabled
protected boolean joystickEventsEnabledIf true Android Sensors are used as simulated Joysticks. Users can use the Android sensor feedback through the RawInputListener or by registering JoyAxisTriggers. -
keyEventsEnabled
protected boolean keyEventsEnabledIf true KeyEvents are generated from TouchEvents -
mouseEventsEnabled
protected boolean mouseEventsEnabledIf true MouseEvents are generated from TouchEvents -
mouseEventsInvertX
protected boolean mouseEventsInvertXFlip X axis -
mouseEventsInvertY
protected boolean mouseEventsInvertYFlip Y axis -
finishOnAppStop
protected boolean finishOnAppStopif true finish this activity when the jme app is stopped -
handleExitHook
protected boolean handleExitHookset to false if you don't want the harness to handle the exit hook -
exitDialogTitle
Title of the exit dialog, default is "Do you want to exit?" -
exitDialogMessage
Message of the exit dialog, default is "Use your home key to bring this app into the background or exit to terminate it." -
screenFullScreen
protected boolean screenFullScreenSet the screen window mode. If screenFullSize is true, then the notification bar and title bar are removed and the screen covers the entire display. If screenFullSize is false, then the notification bar remains visible if screenShowTitle is true while screenFullScreen is false, then the title bar is also displayed under the notification bar. -
screenShowTitle
protected boolean screenShowTitleif screenShowTitle is true while screenFullScreen is false, then the title bar is also displayed under the notification bar -
splashPicID
protected int splashPicIDSplash Screen picture Resource ID. If a Splash Screen is desired, set splashPicID to the value of the Resource ID (i.e. R.drawable.picname). If splashPicID = 0, then no splash screen will be displayed. -
ctx
-
view
protected android.opengl.GLSurfaceView view -
isGLThreadPaused
protected boolean isGLThreadPaused -
splashImageView
protected android.widget.ImageView splashImageView -
frameLayout
protected android.widget.FrameLayout frameLayout
-
-
Constructor Details
-
AndroidHarness
public AndroidHarness()
-
-
Method Details
-
onRetainNonConfigurationInstance
- Overrides:
onRetainNonConfigurationInstance
in classandroid.app.Activity
-
onCreate
public void onCreate(android.os.Bundle savedInstanceState) - Overrides:
onCreate
in classandroid.app.Activity
-
onRestart
protected void onRestart()- Overrides:
onRestart
in classandroid.app.Activity
-
onStart
protected void onStart()- Overrides:
onStart
in classandroid.app.Activity
-
onResume
protected void onResume()- Overrides:
onResume
in classandroid.app.Activity
-
onPause
protected void onPause()- Overrides:
onPause
in classandroid.app.Activity
-
onStop
protected void onStop()- Overrides:
onStop
in classandroid.app.Activity
-
onDestroy
protected void onDestroy()- Overrides:
onDestroy
in classandroid.app.Activity
-
getJmeApplication
-
handleError
Called when an error has occurred. By default, will show an error message to the user and print the exception/error to the log.- Specified by:
handleError
in interfaceSystemListener
- Parameters:
errorMsg
- The error message, if any, or null.t
- Throwable object, or null.
-
onClick
public void onClick(android.content.DialogInterface dialog, int whichButton) Called by the android alert dialog, terminate the activity and OpenGL rendering- Specified by:
onClick
in interfaceandroid.content.DialogInterface.OnClickListener
- Parameters:
dialog
- ignoredwhichButton
- the button index
-
onTouch
Gets called by the InputManager on all touch/drag/scale events- Specified by:
onTouch
in interfaceTouchListener
- Parameters:
name
- the name of the eventevt
- the touch eventtpf
- how much time has passed since the last frame
-
layoutDisplay
public void layoutDisplay() -
removeSplashScreen
public void removeSplashScreen() -
initializeLogHandler
protected void initializeLogHandler()Removes the standard Android log handler due to an issue with not logging entries lower than INFO level and adds a handler that produces JME formatted log messages. -
initialize
public void initialize()Description copied from interface:SystemListener
Callback to indicate the application to initialize. This method is called in the GL/Rendering thread so any GL-dependent resources can be initialized.- Specified by:
initialize
in interfaceSystemListener
-
reshape
public void reshape(int width, int height) Description copied from interface:SystemListener
Called to notify the application that the resolution has changed.- Specified by:
reshape
in interfaceSystemListener
- Parameters:
width
- the new width of the display (in pixels, ≥0)height
- the new height of the display (in pixels, ≥0)
-
rescale
public void rescale(float x, float y) Description copied from interface:SystemListener
Called to notify the application that the scale has changed.- Specified by:
rescale
in interfaceSystemListener
- Parameters:
x
- the new horizontal scale of the displayy
- the new vertical scale of the display
-
update
public void update()Description copied from interface:SystemListener
Callback to update the application state, and render the scene to the back buffer.- Specified by:
update
in interfaceSystemListener
-
requestClose
public void requestClose(boolean esc) Description copied from interface:SystemListener
Called when the user requests to close the application. This could happen when he clicks the X button on the window, presses the Alt-F4 combination, attempts to shut down the process from the task manager, or presses ESC.- Specified by:
requestClose
in interfaceSystemListener
- Parameters:
esc
- If true, the user pressed ESC to close the application.
-
destroy
public void destroy()Description copied from interface:SystemListener
Callback to indicate that the context has been destroyed (either by the user or requested by the application itself). Typically cleanup of native resources should happen here. This method is called in the GL/Rendering thread.- Specified by:
destroy
in interfaceSystemListener
-
gainFocus
public void gainFocus()Description copied from interface:SystemListener
Called when the application gained focus. The display implementation is not allowed to call this method before initialize() has been called or after destroy() has been called.- Specified by:
gainFocus
in interfaceSystemListener
-
loseFocus
public void loseFocus()Description copied from interface:SystemListener
Called when the application lost focus. The display implementation is not allowed to call this method before initialize() has been called or after destroy() has been called.- Specified by:
loseFocus
in interfaceSystemListener
-