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,com.jme3.input.controls.InputListener,com.jme3.input.controls.TouchListener,com.jme3.system.SystemListener
public class AndroidHarness
extends android.app.Activity
implements com.jme3.input.controls.TouchListener, android.content.DialogInterface.OnClickListener, com.jme3.system.SystemListener
AndroidHarness wraps a jme application object and runs it on
Android- Author:
- Kirill, larynx
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.jme3.app.LegacyApplicationThe jme3 application objectprotected StringThe application class to startprotected StringSets the type of Audio Renderer to be used.protected OGLESContextprotected intSets the desired number of Alpha bits for the surfaceview.protected intSets the desired RGB size for the surfaceview.protected intThe number of depth bits specifies the precision of the depth buffer.protected intSets the number of samples to use for multisampling.
Leave 0 (default) to disable multisampling.
Set to 2 or 4 to enable multisampling.protected intSet the number of stencil bits.protected StringMessage of the exit dialog, default is "Use your home key to bring this app into the background or exit to terminate it."protected StringTitle of the exit dialog, default is "Do you want to exit?"protected booleanif true finish this activity when the jme app is stoppedprotected android.widget.FrameLayoutprotected intSet the desired frame rate.protected booleanset to false if you don't want the harness to handle the exit hookprotected booleanprotected booleanIf true Android Sensors are used as simulated Joysticks.protected booleanIf true KeyEvents are generated from TouchEventsprotected static final Loggerprotected booleanIf true MouseEvents are generated from TouchEventsprotected booleanFlip X axisprotected booleanFlip Y axisprotected booleanSet the screen window mode.protected booleanif screenShowTitle is true while screenFullScreen is false, then the title bar is also displayed under the notification barprotected android.widget.ImageViewprotected intSplash Screen picture Resource ID.protected android.opengl.GLSurfaceViewFields 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_OKFields 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_SERVICEFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()voidcom.jme3.app.ApplicationvoidhandleError(String errorMsg, Throwable t) Called when an error has occurred.voidprotected voidRemoves 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.voidvoidvoidonClick(android.content.DialogInterface dialog, int whichButton) Called by the android alert dialog, terminate the activity and OpenGL renderingvoidonCreate(android.os.Bundle savedInstanceState) protected voidprotected voidonPause()protected voidprotected voidonResume()protected voidonStart()protected voidonStop()voidGets called by the InputManager on all touch/drag/scale eventsvoidvoidrequestClose(boolean esc) voidrescale(float x, float y) voidreshape(int width, int height) voidupdate()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, unregisterForContextMenuMethods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, getAssets, getResources, getThemeMethods 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, unregisterReceiverMethods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacksMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface android.view.Window.Callback
onPointerCaptureChanged
-
Field Details
-
logger
-
appClass
The application class to start -
app
protected com.jme3.app.LegacyApplication appThe 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:
onRetainNonConfigurationInstancein classandroid.app.Activity
-
onCreate
public void onCreate(android.os.Bundle savedInstanceState) - Overrides:
onCreatein classandroid.app.Activity
-
onRestart
protected void onRestart()- Overrides:
onRestartin classandroid.app.Activity
-
onStart
protected void onStart()- Overrides:
onStartin classandroid.app.Activity
-
onResume
protected void onResume()- Overrides:
onResumein classandroid.app.Activity
-
onPause
protected void onPause()- Overrides:
onPausein classandroid.app.Activity
-
onStop
protected void onStop()- Overrides:
onStopin classandroid.app.Activity
-
onDestroy
protected void onDestroy()- Overrides:
onDestroyin classandroid.app.Activity
-
getJmeApplication
public com.jme3.app.Application 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:
handleErrorin interfacecom.jme3.system.SystemListener
-
onClick
public void onClick(android.content.DialogInterface dialog, int whichButton) Called by the android alert dialog, terminate the activity and OpenGL rendering- Specified by:
onClickin interfaceandroid.content.DialogInterface.OnClickListener- Parameters:
dialog- ignoredwhichButton- the button index
-
onTouch
Gets called by the InputManager on all touch/drag/scale events- Specified by:
onTouchin interfacecom.jme3.input.controls.TouchListener
-
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()- Specified by:
initializein interfacecom.jme3.system.SystemListener
-
reshape
public void reshape(int width, int height) - Specified by:
reshapein interfacecom.jme3.system.SystemListener
-
rescale
public void rescale(float x, float y) - Specified by:
rescalein interfacecom.jme3.system.SystemListener
-
update
public void update()- Specified by:
updatein interfacecom.jme3.system.SystemListener
-
requestClose
public void requestClose(boolean esc) - Specified by:
requestClosein interfacecom.jme3.system.SystemListener
-
destroy
public void destroy()- Specified by:
destroyin interfacecom.jme3.system.SystemListener
-
gainFocus
public void gainFocus()- Specified by:
gainFocusin interfacecom.jme3.system.SystemListener
-
loseFocus
public void loseFocus()- Specified by:
loseFocusin interfacecom.jme3.system.SystemListener
-