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.SystemListenerAndroidHarnesswraps a jme application object and runs it on Android- Author:
- Kirill, larynx
-
-
Field Summary
Fields Modifier and Type Field Description protected com.jme3.app.LegacyApplicationappThe jme3 application objectprotected java.lang.StringappClassThe application class to startprotected java.lang.StringaudioRendererTypeSets the type of Audio Renderer to be used.protected OGLESContextctxprotected integlAlphaBitsSets the desired number of Alpha bits for the surfaceview.protected integlBitsPerPixelSets the desired RGB size for the surfaceview.protected integlDepthBitsThe number of depth bits specifies the precision of the depth buffer.protected integlSamplesSets the number of samples to use for multisampling.
Leave 0 (default) to disable multisampling.
Set to 2 or 4 to enable multisampling.protected integlStencilBitsSet the number of stencil bits.protected java.lang.StringexitDialogMessageMessage of the exit dialog, default is "Use your home key to bring this app into the background or exit to terminate it."protected java.lang.StringexitDialogTitleTitle of the exit dialog, default is "Do you want to exit?"protected booleanfinishOnAppStopif true finish this activity when the jme app is stoppedprotected android.widget.FrameLayoutframeLayoutprotected intframeRateSet the desired frame rate.protected booleanhandleExitHookset to false if you don't want the harness to handle the exit hookprotected booleanisGLThreadPausedprotected booleanjoystickEventsEnabledIf true Android Sensors are used as simulated Joysticks.protected booleankeyEventsEnabledIf true KeyEvents are generated from TouchEventsprotected static java.util.logging.Loggerloggerprotected booleanmouseEventsEnabledIf true MouseEvents are generated from TouchEventsprotected booleanmouseEventsInvertXFlip X axisprotected booleanmouseEventsInvertYFlip Y axisprotected booleanscreenFullScreenSet the screen window mode.protected booleanscreenShowTitleif screenShowTitle is true while screenFullScreen is false, then the title bar is also displayed under the notification barprotected android.widget.ImageViewsplashImageViewprotected intsplashPicIDSplash Screen picture Resource ID.protected android.opengl.GLSurfaceViewview-
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
-
-
Constructor Summary
Constructors Constructor Description AndroidHarness()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()voidgainFocus()com.jme3.app.ApplicationgetJmeApplication()voidhandleError(java.lang.String errorMsg, java.lang.Throwable t)Called when an error has occurred.voidinitialize()protected voidinitializeLogHandler()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.voidlayoutDisplay()voidloseFocus()voidonClick(android.content.DialogInterface dialog, int whichButton)Called by the android alert dialog, terminate the activity and OpenGL renderingvoidonCreate(android.os.Bundle savedInstanceState)protected voidonDestroy()protected voidonPause()protected voidonRestart()protected voidonResume()java.lang.ObjectonRetainNonConfigurationInstance()protected voidonStart()protected voidonStop()voidonTouch(java.lang.String name, com.jme3.input.event.TouchEvent evt, float tpf)Gets called by the InputManager on all touch/drag/scale eventsvoidremoveSplashScreen()voidrequestClose(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, 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
-
-
-
-
Field Detail
-
logger
protected static final java.util.logging.Logger logger
-
appClass
protected java.lang.String appClass
The application class to start
-
app
protected com.jme3.app.LegacyApplication app
The jme3 application object
-
eglBitsPerPixel
protected int eglBitsPerPixel
Sets the desired RGB size for the surfaceview. 16 = RGB565, 24 = RGB888. (default = 24)
-
eglAlphaBits
protected int eglAlphaBits
Sets 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 eglDepthBits
The number of depth bits specifies the precision of the depth buffer. (default = 16)
-
eglSamples
protected int eglSamples
Sets 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 eglStencilBits
Set the number of stencil bits. (default = 0)
-
frameRate
protected int frameRate
Set 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
protected java.lang.String 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 joystickEventsEnabled
If 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 keyEventsEnabled
If true KeyEvents are generated from TouchEvents
-
mouseEventsEnabled
protected boolean mouseEventsEnabled
If true MouseEvents are generated from TouchEvents
-
mouseEventsInvertX
protected boolean mouseEventsInvertX
Flip X axis
-
mouseEventsInvertY
protected boolean mouseEventsInvertY
Flip Y axis
-
finishOnAppStop
protected boolean finishOnAppStop
if true finish this activity when the jme app is stopped
-
handleExitHook
protected boolean handleExitHook
set to false if you don't want the harness to handle the exit hook
-
exitDialogTitle
protected java.lang.String exitDialogTitle
Title of the exit dialog, default is "Do you want to exit?"
-
exitDialogMessage
protected java.lang.String 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 screenFullScreen
Set 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 screenShowTitle
if screenShowTitle is true while screenFullScreen is false, then the title bar is also displayed under the notification bar
-
splashPicID
protected int splashPicID
Splash 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
protected OGLESContext ctx
-
view
protected android.opengl.GLSurfaceView view
-
isGLThreadPaused
protected boolean isGLThreadPaused
-
splashImageView
protected android.widget.ImageView splashImageView
-
frameLayout
protected android.widget.FrameLayout frameLayout
-
-
Method Detail
-
onRetainNonConfigurationInstance
public java.lang.Object 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
public void handleError(java.lang.String errorMsg, java.lang.Throwable t)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
public void onTouch(java.lang.String name, com.jme3.input.event.TouchEvent evt, float tpf)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
-
-