Multipoint touch

From Java Runtime 2.2 for Symbian onwards, Symbian touch devices support multipoint touch events on Canvas and GameCanvas. To enable multipoint touch events, set the Nokia-UI-Enhancement JAD attribute to EnableMultiPointTouchEvents.

The number of supported touch points depends on the limitations set by the device.

Figure: Multipoint touch with two touch points

The screenshots are part of a small multipoint touch example that can be downloaded here.

When multipoint touch events are enabled, you can query the system property com.nokia.pointer.number in Canvas and GameCanvas methods pointerPressed, pointerDragged or pointerReleased to obtain the pointer number of the pointer that was source of the event.

The code snippet demonstrates how to obtain the pointer number with the pointerPressed method:

protected void pointerPressed(int x, int y) {
    	String idString = System.getProperty("com.nokia.pointer.number");
    	int pointerId = 0;
    	if (idString != null)
    	{
    		pointerId = Integer.parseInt(idString);
    	}
    	
    	...
}

The system property com.nokia.pointer.number exists only in the scope of methods pointerPressed, pointerDragged or pointerReleased and outside of these methods returned value will be null.

Enabling multipoint touch events with JAD attribute Nokia-UI-Enhancement does not enable multipoint touch events in any other part of the LCDUI framework.

It is possible to enable multipoint touch support in the Symbian^3 SDK, see Support for Multiple Pointers in the Emulator (Symbian Developer's Library).