Re: [android-developers] Multitouch seems badly broken on Nexus One 2.1-update1

462 views
Skip to first unread message

Kevin Duffey

unread,
Feb 11, 2010, 9:10:15 PM2/11/10
to android-d...@googlegroups.com
So what I want to know is what is being done about this? Is there a bug file and if so is it

Robert Green <rbgr...@gmail.com> wrote:

>To further confirm what others have been saying - Multitouch is not
>suitable for games on Android at the moment. I'm trying to implement
>a simple control system - left thumb is a virtual analog stick
>(working fine with single-touch) and a fire button on the right. I
>wanted to go with another virtual analog stick on the right but there
>is no way it will work with all of these bugs. In fact, the fire
>button is causing a big problem as well.
>
>The major issue is that touch points influence each other - badly. If
>you're holding a thumb down at 100,300 then touch over at 700,250,
>guess what? Your first touch point magically moves to 100,250ish,
>depending on how hard you touch with the right thumb. I thought maybe
>I could write some smart code to work around these issues but the data
>is so bad that I don't see how I can make for a reliable control
>system using this data.
>
>I could even work around the axis flipping problem but the influence
>issue I'm trying to describe above it really too much to work
>around.
>
>Given that not even DPad/trackballs are standard on Android phones -
>are we confined to tilt and single-touch for all game control systems
>for now? It would seem that way to me. These problems now make me
>realize where the typing inaccuracies come from on the keyboard - the
>keys are probably receiving the wrong coords some of the time when mt
>is being used.
>
>Touch - what works:
>Any single touch
>Registering a second touch and kind of the location of the second
>touch (though it won't be accurate)
>
>Touch - what's broken:
>Any kind of accuracy with two touch points down
>Axis flipping when the moving touch points cross over
>
>Tested with the latest version of Android on my Nexus One (2.1-
>update1).
>
>--
>You received this message because you are subscribed to the Google
>Groups "Android Developers" group.
>To post to this group, send email to android-d...@googlegroups.com
>To unsubscribe from this group, send email to
>android-develop...@googlegroups.com
>For more options, visit this group at
>http://groups.google.com/group/android-developers?hl=en

Dianne Hackborn

unread,
Feb 11, 2010, 10:46:00 PM2/11/10
to android-d...@googlegroups.com
On Thu, Feb 11, 2010 at 6:10 PM, Kevin Duffey <andj...@gmail.com> wrote:
So what I want to know is what is being done about this?  Is there a bug file and if so is it

This is how the sensor hardware works.  It is essentially the same sensor as the G1 and myTouch.  Please don't file a bug about it.

--
Dianne Hackborn
Android framework engineer
hac...@android.com

Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails.  All such questions should be posted on public forums, where I and others can see and answer them.

Kevin Duffey

unread,
Feb 12, 2010, 3:39:34 AM2/12/10
to android-d...@googlegroups.com
Ugh..sorry.. I hate using my moto droid to reply.. fat fingers and a horrible physical keyboard don't go together.

Dianne, I don't understand your response.. it's quite clear from several developers that the multi-touch has problems severe enough that it's deterring game developers and others that would use it. You're saying that it's normal behavior for the multi-touch to change the location of 2 touches such that one of them is completely not in the location of where you touched it? Is this an Android platform issue with how it handles sensor data.. or are you saying that the G1, myTouch, Nexus One and Moto Droid (not sure about others) ALL have built their touch sensors to purposely report this sort of behavior when you touch, then release, then touch again as Robert and several other posters have state is happening?



--

Hekki

unread,
Feb 12, 2010, 5:06:59 AM2/12/10
to Android Developers
Hi,

I should report the same thing.

My game Armaboing (www.armaboing.com) is multitouch since Android 1.5.

And I have the same problem with multitouch, and came to think that
it's not Android the problem but the drivers or the hardware.
I think that's why Diane doen't want a bug report on this but I really
hope it could be a glitch on the Android framework so that they can
correct it.
Maybe with a direct access to the sensors reading Android folks can
tweak the data so that they are accurate before they get to us via the
jvm ?


I don't know if it can help but here's a few thing that I found to go
around that bug :

if you monitor both ACTION_UP and ACTION_DOWN on a single multitouch
event "Up", most of the time one of the action returns the correct
position for both points but one going down, the other going up.
On my game which is made of very briefs tap on the screen, i count an
Up And Down event as one and if the Down action didn't hit an object,
then i check for the up event.
Returns a few false positive but is much better than without the hack.

I also noticed that if the two points are close on the X or Y
coordinates, i have a lot fewer errors. Maybe you can adapt your
controls to rely on that.

One other thing I tried for another game(not released) is to get rid
of the multitouch altogether. On the lower left corner i monitor the
touchevent for direction and when i want to fire, i press harder
(pressure and size event).

Best regards.

On 12 fév, 09:39, Kevin Duffey <andjar...@gmail.com> wrote:
> Ugh..sorry.. I hate using my moto droid to reply.. fat fingers and a
> horrible physical keyboard don't go together.
>
> Dianne, I don't understand your response.. it's quite clear from several
> developers that the multi-touch has problems severe enough that
> it's deterring game developers and others that would use it. You're saying
> that it's normal behavior for the multi-touch to change the location of 2
> touches such that one of them is completely not in the location of where you
> touched it? Is this an Android platform issue with how it handles sensor
> data.. or are you saying that the G1, myTouch, Nexus One and Moto Droid (not
> sure about others) ALL have built their touch sensors to purposely report
> this sort of behavior when you touch, then release, then touch again as
> Robert and several other posters have state is happening?
>

> On Thu, Feb 11, 2010 at 7:46 PM, Dianne Hackborn <hack...@android.com>wrote:


>
>
>
> > On Thu, Feb 11, 2010 at 6:10 PM, Kevin Duffey <andjar...@gmail.com> wrote:
>
> >> So what I want to know is what is being done about this?  Is there a bug
> >> file and if so is it
>
> > This is how the sensor hardware works.  It is essentially the same sensor
> > as the G1 and myTouch.  Please don't file a bug about it.
>
> > --
> > Dianne Hackborn
> > Android framework engineer

> > hack...@android.com


>
> > Note: please don't send private questions to me, as I don't have time to
> > provide private support, and so won't reply to such e-mails.  All such
> > questions should be posted on public forums, where I and others can see and
> > answer them.
>
> >  --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-d...@googlegroups.com
> > To unsubscribe from this group, send email to

> > android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>

Kevin Duffey

unread,
Feb 12, 2010, 6:18:55 AM2/12/10
to android-d...@googlegroups.com
If this same issue occurs on Nexus, Moto Droid, G1.. (any other devices??)  it seems it would more likely be Android and not the different devices all with the same problem. But.. I don't know for sure.. just seems like that two or three different vendors wouldn't end up with the same bug based on their own driver implementations for touch screens. 

Hekki

unread,
Feb 12, 2010, 7:22:44 AM2/12/10
to Android Developers
You've got a point here. Unless the screen capabilities and/or
technologies is dictated by google to the vendors.

Does someone knows how to use the ndk ?

I believe using the ndk you can have direct access to the sensors and
thus find out if it's the hardware or one of the layers on top of it
that screws the readings.

> > > > android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com><android-developers%2Bunsubs

Sean Hodges

unread,
Feb 12, 2010, 7:39:25 AM2/12/10
to android-d...@googlegroups.com
I think what Dianne is saying is that the values you are seeing are
what is raw data returned from the sensor, it's not normalised for
multi-touch games, or for any particular purpose.

My understanding is that the values returned have different coordinate
spaces, and have a tendency to "jump" about when used directly (I
suspect this second issue is more an artefact of the device-specific
screen sensitivity, dents, scratches and the impact of screen
protectors).

Take a look at Luke Hutchison's multi-touch controller, it might
provide a suitable wrapper for your requirements:

http://lukehutch.wordpress.com/2010/01/06/my-multi-touch-code-ported-to-eclair/

Robert Green

unread,
Feb 12, 2010, 12:33:25 PM2/12/10
to Android Developers
Where did my original post go? Was it deleted?

This is a valid problem. How is it that the hardware coming from both
HTC and motorola has the same problem? Also - how was this a solved
problem with iPhone several years ago? I'm trying to compete with
that platform but problems like this make it really hard!

On Feb 12, 6:39 am, Sean Hodges <seanhodge...@googlemail.com> wrote:
> I think what Dianne is saying is that the values you are seeing are
> what is raw data returned from the sensor, it's not normalised for
> multi-touch games, or for any particular purpose.
>
> My understanding is that the values returned have different coordinate
> spaces, and have a tendency to "jump" about when used directly (I
> suspect this second issue is more an artefact of the device-specific
> screen sensitivity, dents, scratches and the impact of screen
> protectors).
>
> Take a look at Luke Hutchison's multi-touch controller, it might
> provide a suitable wrapper for your requirements:
>

> http://lukehutch.wordpress.com/2010/01/06/my-multi-touch-code-ported-...


>
>
>
> On Fri, Feb 12, 2010 at 8:39 AM, Kevin Duffey <andjar...@gmail.com> wrote:
> > Ugh..sorry.. I hate using my moto droid to reply.. fat fingers and a
> > horrible physical keyboard don't go together.
> > Dianne, I don't understand your response.. it's quite clear from several
> > developers that the multi-touch has problems severe enough that
> > it's deterring game developers and others that would use it. You're saying
> > that it's normal behavior for the multi-touch to change the location of 2
> > touches such that one of them is completely not in the location of where you
> > touched it? Is this an Android platform issue with how it handles sensor
> > data.. or are you saying that the G1, myTouch, Nexus One and Moto Droid (not
> > sure about others) ALL have built their touch sensors to purposely report
> > this sort of behavior when you touch, then release, then touch again as
> > Robert and several other posters have state is happening?
>

> > On Thu, Feb 11, 2010 at 7:46 PM, Dianne Hackborn <hack...@android.com>
> > wrote:


>
> >> On Thu, Feb 11, 2010 at 6:10 PM, Kevin Duffey <andjar...@gmail.com> wrote:
>
> >>> So what I want to know is what is being done about this?  Is there a bug
> >>> file and if so is it
>
> >> This is how the sensor hardware works.  It is essentially the same sensor
> >> as the G1 and myTouch.  Please don't file a bug about it.
> >> --
> >> Dianne Hackborn
> >> Android framework engineer

> >> hack...@android.com

Robert Green

unread,
Feb 12, 2010, 12:35:23 PM2/12/10
to Android Developers
Nevermind, I found it - it got segmented somehow.

Dianne Hackborn

unread,
Feb 12, 2010, 2:42:16 PM2/12/10
to android-d...@googlegroups.com
Sorry I meant exactly what I said: this is how the touch screen hardware on the Nexus One works (which is essentially the same screen as on the G1 and myTouch).  The Droid has a sensor from a different manufacturer, with different behavior.  Other phones will likewise have different sensors.

This has nothing to do with the Android platform.  Please do not file bugs about it.  Android is just reporting what the hardware is capable of reporting.  There is no "normalization" for games or such, there is just the data the screen provides.  (Though there is some special code in the current framework for cleaning up the data from the Droid screen; arguably this should be in the driver or firmware for it, since this is really screen and hardware specific kind of stuff.  At any rate, it is not applicable to basic screen capabilities like here.)

There is a good analysis of the G1 class touch screen here:

Kevin Duffey

unread,
Feb 12, 2010, 3:30:37 PM2/12/10
to android-d...@googlegroups.com
Ok.. thanks for the pointer Sean. So question for you and Dianne.. being on the platform team.. if his code works so well.. supposedly better than the OTA updates for Nexus.. why not just replace what is in Android.. or add it some how so that all of us developers can have this corrected data? Maybe I read incorrectly, but from what you and Dianne are saying, the issues the rest of the guys talk about.. where by touching one place, then a 2nd.. then lifting one finger, then touch again and the wrong data being sent.. this has to do with the massive events being sent and the confusion lies in that the MotionEvent is reporting incorrect data..but somewhere in there is the correct data.. and from what it looks like, Lukehutch's code resolves that issue?

If that is correct, great.. maybe Robert Green and others can take that class of his and retrofit it and report back on this thread if it works. But if so, why not put that into the core of the framework for all to benefit? Clearly this has been a problem for the likes of Robert and others who have done great work with game development and are complaining that it's ruining the ability to develop comparable (at least in multi-touch) games as iPhone.. so why not provide the corrected data within Android itself? Or.. why not require that all touch manufacturers.. devices.. report the right data in some specific way such that the framework provides accurate multi-touch completely? This really seems to be more complex than it should be for us developers wanting to utilize multi-touch.

Robert Green

unread,
Feb 12, 2010, 5:55:54 PM2/12/10
to Android Developers
Luke's code cleans up some basic stuff like gestures involving
pinching but it can not fix the two independent point problem.
Currently, even with his code which filters out some noise, it is
impossible to have a reliable control system involving two independent
virtual joysticks placed along the same axis. So many iPhone games
have that and I was actually planning it for my new release but
unfortunately it will not work. I'm talking about the controls where
you've got a touchable joystick on the bottom left and another one on
the bottom right. It's very common but currently impossible on
Android because of the hardware (though I'd really like to see some
raw data because looking through the core service classes, there is a
LOT of difficult-to-read code that seems to hack up the values quite a
bit).

I'll wrote a little multitouch visualizer kind of like Luke's but
aimed more at showing what you can and can't do with a game control
system. I'll post the APK so everyone can see what I'm talking about.

Multitouch definitely works better on the Droid than on the HTC
screens but I saw many similar issues involving interactions between
the two touched spots. It doesn't seem to flip axis as much as the
HTC screens, though.

This really is unfortunate for the platform as a whole that the
screens are so weak with this feature. I guess us game guys will just
have to get a little more creative with our designs.

On Feb 12, 2:30 pm, Kevin Duffey <andjar...@gmail.com> wrote:
> Ok.. thanks for the pointer Sean. So question for you and Dianne.. being on
> the platform team.. if his code works so well.. supposedly better than the
> OTA updates for Nexus.. why not just replace what is in Android.. or add it
> some how so that all of us developers can have this corrected data? Maybe I
> read incorrectly, but from what you and Dianne are saying, the issues the
> rest of the guys talk about.. where by touching one place, then a 2nd.. then
> lifting one finger, then touch again and the wrong data being sent.. this
> has to do with the massive events being sent and the confusion lies in that
> the MotionEvent is reporting incorrect data..but somewhere in there is the
> correct data.. and from what it looks like, Lukehutch's code resolves that
> issue?
>
> If that is correct, great.. maybe Robert Green and others can take that
> class of his and retrofit it and report back on this thread if it works. But
> if so, why not put that into the core of the framework for all to benefit?
> Clearly this has been a problem for the likes of Robert and others who have
> done great work with game development and are complaining that it's ruining
> the ability to develop comparable (at least in multi-touch) games as
> iPhone.. so why not provide the corrected data within Android itself? Or..
> why not require that all touch manufacturers.. devices.. report the right
> data in some specific way such that the framework provides accurate
> multi-touch completely? This really seems to be more complex than it should
> be for us developers wanting to utilize multi-touch.
>

> On Fri, Feb 12, 2010 at 11:42 AM, Dianne Hackborn <hack...@android.com>wrote:
>
>
>
> > Sorry I meant exactly what I said: this is how the touch screen hardware on
> > the Nexus One works (which is essentially the same screen as on the G1 and
> > myTouch).  The Droid has a sensor from a different manufacturer, with
> > different behavior.  Other phones will likewise have different sensors.
>
> > This has nothing to do with the Android platform.  Please do not file bugs
> > about it.  Android is just reporting what the hardware is capable of
> > reporting.  There is no "normalization" for games or such, there is just the
> > data the screen provides.  (Though there is some special code in the current
> > framework for cleaning up the data from the Droid screen; arguably this
> > should be in the driver or firmware for it, since this is really screen and
> > hardware specific kind of stuff.  At any rate, it is not applicable to basic
> > screen capabilities like here.)
>
> > There is a good analysis of the G1 class touch screen here:
>

> >http://lukehutch.wordpress.com/2009/01/10/full-working-multitouch-on-...


>
> > On Fri, Feb 12, 2010 at 4:39 AM, Sean Hodges <seanhodge...@googlemail.com>wrote:
>
> >> I think what Dianne is saying is that the values you are seeing are
> >> what is raw data returned from the sensor, it's not normalised for
> >> multi-touch games, or for any particular purpose.
>
> >> My understanding is that the values returned have different coordinate
> >> spaces, and have a tendency to "jump" about when used directly (I
> >> suspect this second issue is more an artefact of the device-specific
> >> screen sensitivity, dents, scratches and the impact of screen
> >> protectors).
>
> >> Take a look at Luke Hutchison's multi-touch controller, it might
> >> provide a suitable wrapper for your requirements:
>

> >>http://lukehutch.wordpress.com/2010/01/06/my-multi-touch-code-ported-...
>
> >> On Fri, Feb 12, 2010 at 8:39 AM, Kevin Duffey <andjar...@gmail.com>


> >> wrote:
> >> > Ugh..sorry.. I hate using my moto droid to reply.. fat fingers and a
> >> > horrible physical keyboard don't go together.
> >> > Dianne, I don't understand your response.. it's quite clear from several
> >> > developers that the multi-touch has problems severe enough that
> >> > it's deterring game developers and others that would use it. You're
> >> saying
> >> > that it's normal behavior for the multi-touch to change the location of
> >> 2
> >> > touches such that one of them is completely not in the location of where
> >> you
> >> > touched it? Is this an Android platform issue with how it handles sensor
> >> > data.. or are you saying that the G1, myTouch, Nexus One and Moto Droid
> >> (not
> >> > sure about others) ALL have built their touch sensors to purposely
> >> report
> >> > this sort of behavior when you touch, then release, then touch again as
> >> > Robert and several other posters have state is happening?
>

> >> > On Thu, Feb 11, 2010 at 7:46 PM, Dianne Hackborn <hack...@android.com>
> >> > wrote:
>
> >> >> On Thu, Feb 11, 2010 at 6:10 PM, Kevin Duffey <andjar...@gmail.com>


> >> wrote:
>
> >> >>> So what I want to know is what is being done about this?  Is there a
> >> bug
> >> >>> file and if so is it
>
> >> >> This is how the sensor hardware works.  It is essentially the same
> >> sensor
> >> >> as the G1 and myTouch.  Please don't file a bug about it.
> >> >> --
> >> >> Dianne Hackborn
> >> >> Android framework engineer

> >> >> hack...@android.com


>
> >> >> Note: please don't send private questions to me, as I don't have time
> >> to
> >> >> provide private support, and so won't reply to such e-mails.  All such
> >> >> questions should be posted on public forums, where I and others can see
> >> and
> >> >> answer them.
>
> >> >> --
> >> >> You received this message because you are subscribed to the Google
> >> >> Groups "Android Developers" group.
> >> >> To post to this group, send email to
> >> android-d...@googlegroups.com
> >> >> To unsubscribe from this group, send email to

> >> >> android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>


> >> >> For more options, visit this group at
> >> >>http://groups.google.com/group/android-developers?hl=en
>
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups "Android Developers" group.
> >> > To post to this group, send email to
> >> android-d...@googlegroups.com
> >> > To unsubscribe from this group, send email to

> >> > android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>


> >> > For more options, visit this group at
> >> >http://groups.google.com/group/android-developers?hl=en
>
> >> --
> >> You received this message because you are subscribed to the Google
> >> Groups "Android Developers" group.
> >> To post to this group, send email to android-d...@googlegroups.com
> >> To unsubscribe from this group, send email to

> >> android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>


> >> For more options, visit this group at
> >>http://groups.google.com/group/android-developers?hl=en
>
> > --
> > Dianne Hackborn
> > Android framework engineer

> > hack...@android.com


>
> > Note: please don't send private questions to me, as I don't have time to
> > provide private support, and so won't reply to such e-mails.  All such
> > questions should be posted on public forums, where I and others can see and
> > answer them.
>
> >  --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-d...@googlegroups.com
> > To unsubscribe from this group, send email to

> > android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>

Robert Green

unread,
Feb 12, 2010, 7:20:49 PM2/12/10
to Android Developers
Ok if you guys want to see what I'm talking about, check out the app I
just published called "Multitouch Visible Test." Play around with
that and you'll see the problems. If you're interested in developing a
multitouch app, check that out first so that you know the limitations
of the data you'll be working with.

On Feb 12, 4:55 pm, Robert Green <rbgrn....@gmail.com> wrote:
> Luke's code cleans up some basic stuff like gestures involving
> pinching but it can not fix the two independent point problem.
> Currently, even with his code which filters out some noise, it is
> impossible to have a reliable control system involving two independent
> virtual joysticks placed along the same axis.  So many iPhone games
> have that and I was actually planning it for my new release but
> unfortunately it will not work.  I'm talking about the controls where
> you've got a touchable joystick on the bottom left and another one on
> the bottom right.  It's very common but currently impossible on
> Android because of the hardware (though I'd really like to see some
> raw data because looking through the core service classes, there is a
> LOT of difficult-to-read code that seems to hack up the values quite a
> bit).
>

> I'll wrote a littlemultitouchvisualizer kind of like Luke's but


> aimed more at showing what you can and can't do with a game control
> system.  I'll post the APK so everyone can see what I'm talking about.
>

> Multitouchdefinitely works better on the Droid than on the HTC

Kevin Duffey

unread,
Feb 13, 2010, 6:51:28 PM2/13/10
to android-d...@googlegroups.com
So Robert.. is this a platform issue in your mind.. being that it happens on all android devices currently regardless of manufacturer? Or is it a driver issue for each hand set and just oddly happens to be coincidental that various manufacturers have the exact same issue with multi-touch? I am sure what Diane says is accurate... but yet it seems odd that different manufacturers have the same problem.

On a slightly different note.. what is the stance of the Android platform team as a whole towards game developers? By this I mean, if this is indeed an issue on different manufacturer's handsets.. is it important enough that game developers, which for sure will be a large segment of popularity for android as it is on iPhone.. can get this escalated enough to get some platform/driver developers looking into it and if possible, tap the community (such as Robert) to help, so we can figure out exactly what is going on? It just seems too crucial of an issue to overlook being that it directly makes it impossible as of now for game developers to really utilize multi touch.

Robert (et all)... an app I want to eventually get around doing is a drum machine app.. with multiple drum pads. On the iPhone, an app called BeatMaker allows for 5 pads at once to be touched. Would this issue possibly make an app like this not work? I don't even know if Android can handle more than two touches at once.. but there are plenty of apps out there that will use more than two simultaneous touches at once.

Lance Nanek

unread,
Feb 13, 2010, 8:10:26 PM2/13/10
to Android Developers
A more capable multitouch screen probably costs more. If that is the
case, it isn't really surprising that multiple manufacturers would go
with a cheaper, less capable one.

On Feb 13, 6:51 pm, Kevin Duffey <andjar...@gmail.com> wrote:
> So Robert.. is this a platform issue in your mind.. being that it happens on
> all android devices currently regardless of manufacturer? Or is it a driver
> issue for each hand set and just oddly happens to be coincidental that
> various manufacturers have the exact same issue with multi-touch? I am sure
> what Diane says is accurate... but yet it seems odd that different
> manufacturers have the same problem.
>
> On a slightly different note.. what is the stance of the Android platform
> team as a whole towards game developers? By this I mean, if this is indeed
> an issue on different manufacturer's handsets.. is it important enough that
> game developers, which for sure will be a large segment of popularity for
> android as it is on iPhone.. can get this escalated enough to get some
> platform/driver developers looking into it and if possible, tap the
> community (such as Robert) to help, so we can figure out exactly what is
> going on? It just seems too crucial of an issue to overlook being that it
> directly makes it impossible as of now for game developers to really utilize
> multi touch.
>
> Robert (et all)... an app I want to eventually get around doing is a drum
> machine app.. with multiple drum pads. On the iPhone, an app called
> BeatMaker allows for 5 pads at once to be touched. Would this issue possibly
> make an app like this not work? I don't even know if Android can handle more
> than two touches at once.. but there are plenty of apps out there that will
> use more than two simultaneous touches at once.
>

> > > > >> >> android-develop...@googlegroups.com<android-developers%2Bunsu...@googlegroups.com><android-developers%2Bunsubs


> > cr...@googlegroups.com>
> > > > >> >> For more options, visit this group at
>

> ...
>
> read more »

Kevin Duffey

unread,
Feb 14, 2010, 12:11:03 AM2/14/10
to android-d...@googlegroups.com
So are they all using the same company for the screen?


Dianne Hackborn

unread,
Feb 14, 2010, 2:14:17 PM2/14/10
to android-d...@googlegroups.com
G1, myTouch, and Passion use a Synaptics screen.  Droid uses one from another company (I can't recall).

Even for a particular company, there are a wide variety of screens you will encounter.  For example here is what I found for Synaptics:

Sean Hodges

unread,
Feb 15, 2010, 4:22:24 AM2/15/10
to android-d...@googlegroups.com
The Nexus One uses the Synaptics ClearPad 2000 series:
http://www.synaptics.com/about/press/press-releases/synaptics-clearpad-on-nexus-one-smartphone

According to this reference:
http://www.synaptics.com/solutions/products/clearpad#benefits-2000
this model has support for a maximum of 2 simultaneous touches, the
3000 series supports up to 10. The Synaptics site also describes some
of the gestures that are possible with its products:
http://www.synaptics.com/solutions/technology/gestures/touchpad.

The touchscreen technology is very diverse across handsets, some of
the more complex gestures are going to be limited or impossible on
certain devices (e.g. ones that have obtrusive dead-zones or single
touch only). For this reason, I don't believe the interface can be
normalised to be compatible with all devices, primarily because you
will cripple the devices with the superior functionality (we'd lose
multi-touch for a start, to support handsets like the HTC Magic /
Dream). I think you just have to be conservative about the complexity
of the gestures you require in your app, and provide alternative
methods of control for the devices that can't support those gestures.
The Dolphin Browser is a good example of this in action.

Mario Zechner

unread,
Feb 15, 2010, 6:16:34 PM2/15/10
to Android Developers
It's not so much an issue of gestures that may be impossible to
recognize on certain screens but more that the API exposes
functionality that is broken on all screens at the moment. Especially
the coordinate flipping/confusion is something that can't be solved
according to Dianne. And it is exactly this functionality (just
tracking two fingers that are not close to each other on the screen)
that is needed by us game developers to create more elaborate input
schemes. It's kind of sad really :/

On 15 Feb., 10:22, Sean Hodges <seanhodge...@googlemail.com> wrote:
> The Nexus One uses the Synaptics ClearPad 2000 series:http://www.synaptics.com/about/press/press-releases/synaptics-clearpa...


>
> According to this reference:http://www.synaptics.com/solutions/products/clearpad#benefits-2000
> this model has support for a maximum of 2 simultaneous touches, the
> 3000 series supports up to 10. The Synaptics site also describes some
> of the gestures that are possible with its products:http://www.synaptics.com/solutions/technology/gestures/touchpad.
>
> The touchscreen technology is very diverse across handsets, some of
> the more complex gestures are going to be limited or impossible on

> certain devices (e.g. ones that have obtrusive dead-zones or singletouchonly). For this reason, I don't believe the interface can be


> normalised to be compatible with all devices, primarily because you

> will cripple the devices with the superior functionality (we'd losemulti-touchfor a start, to support handsets like the HTC Magic /


> Dream). I think you just have to be conservative about the complexity
> of the gestures you require in your app, and provide alternative
> methods of control for the devices that can't support those gestures.
> The Dolphin Browser is a good example of this in action.
>

> On Sun, Feb 14, 2010 at 7:14 PM, Dianne Hackborn <hack...@android.com> wrote:
> > G1, myTouch, and Passion use a Synaptics screen.  Droid uses one from
> > another company (I can't recall).
> > Even for a particular company, there are a wide variety of screens you will
> > encounter.  For example here is what I found for Synaptics:
> >http://www.synaptics.com/solutions/products/clearpad
>

> > On Sat, Feb 13, 2010 at 9:11 PM, Kevin Duffey <andjar...@gmail.com> wrote:
>
> >> So are they all using the same company for the screen?
>
> >> On Sat, Feb 13, 2010 at 5:10 PM, Lance Nanek <lna...@gmail.com> wrote:
>
> >>> A more capable multitouch screen probably costs more. If that is the
> >>> case, it isn't really surprising that multiple manufacturers would go
> >>> with a cheaper, less capable one.
>
> >>> On Feb 13, 6:51 pm, Kevin Duffey <andjar...@gmail.com> wrote:
> >>> > So Robert.. is this a platform issue in your mind.. being that it
> >>> > happens on
> >>> > all android devices currently regardless of manufacturer? Or is it a
> >>> > driver
> >>> > issue for each hand set and just oddly happens to be coincidental that

> >>> > various manufacturers have the exact same issue withmulti-touch? I am

> >>> > > > > lifting one finger, thentouchagain and the wrong data being


> >>> > > > > sent..
> >>> > > this
> >>> > > > > has to do with the massive events being sent and the confusion
> >>> > > > > lies in
> >>> > > that
> >>> > > > > the MotionEvent is reporting incorrect data..but somewhere in
> >>> > > > > there is
> >>> > > the
> >>> > > > > correct data.. and from what it looks like, Lukehutch's code
> >>> > > > > resolves
> >>> > > that
> >>> > > > > issue?
>
> >>> > > > > If that is correct, great.. maybe Robert Green and others can
> >>> > > > > take that
> >>> > > > > class of his and retrofit it and report back on this thread if it
> >>> > > works. But
> >>> > > > > if so, why not put that into the core of the framework for all to
> >>> > > benefit?
> >>> > > > > Clearly this has been a problem for the likes of Robert and
> >>> > > > > others who
> >>> > > have
> >>> > > > > done great work with game development and are complaining that
> >>> > > > > it's
> >>> > > ruining

> >>> > > > > the ability to develop comparable (at least inmulti-touch) games


> >>> > > > > as
> >>> > > > > iPhone.. so why not provide the corrected data within Android
> >>> > > > > itself?
> >>> > > Or..

> >>> > > > > why not require that alltouchmanufacturers.. devices.. report


> >>> > > > > the
> >>> > > right
> >>> > > > > data in some specific way such that the framework provides
> >>> > > > > accurate

> >>> > > > >multi-touchcompletely? This really seems to be more complex than

> >>> > > > > > There is a good analysis of the G1 classtouchscreen here:


>
> >>> > > >http://lukehutch.wordpress.com/2009/01/10/full-working-multitouch-on-...
>
> >>> > > > > > On Fri, Feb 12, 2010 at 4:39 AM, Sean Hodges <
>

> ...
>
> Erfahren Sie mehr »

Dianne Hackborn

unread,
Feb 15, 2010, 6:51:14 PM2/15/10
to android-d...@googlegroups.com
On Mon, Feb 15, 2010 at 3:16 PM, Mario Zechner <badlog...@gmail.com> wrote:
It's not so much an issue of gestures that may be impossible to
recognize on certain screens but more that the API exposes
functionality that is broken on all screens at the moment.

The Droid screen handles two fully independent fingers.

Robert Green

unread,
Feb 15, 2010, 8:29:41 PM2/15/10
to Android Developers
Droid handles better than the rest so far but my tests still showed
errors. Occasionally it still flips axis and has some small
interactions between the two fingers on near-axis touches. It's
better but doesn't seem as good as iPhone/iPod touch's screen.

On Feb 15, 5:51 pm, Dianne Hackborn <hack...@android.com> wrote:


> On Mon, Feb 15, 2010 at 3:16 PM, Mario Zechner <badlogicga...@gmail.com>wrote:
>
> > It's not so much an issue of gestures that may be impossible to
> > recognize on certain screens but more that the API exposes
> > functionality that is broken on all screens at the moment.
>
> The Droid screen handles two fully independent fingers.
>
> --
> Dianne Hackborn
> Android framework engineer

> hack...@android.com

Sean Hodges

unread,
Feb 16, 2010, 5:00:52 AM2/16/10
to android-d...@googlegroups.com
It doesn't seem as good because it isn't as good.

Have you looked at the supported gestures page I linked you to?
http://www.synaptics.com/solutions/technology/gestures/touchpad

All of the gestures that the screen used by the Nexus One claims to
support would not be affected by the issues you describe. You can
pinch, press (1 or 2 fingers), tap, flick and "pivot rotate" (this is
a 90 degree rotation gesture, see the link for more info). I can't
speak for the Droid, because there doesn't seem to be any information
about its hardware components, but they may have re-used the Synaptics
touch interface driver to maintain a consistent feel with existing
phones on the market
(http://www.synaptics.com/about/press/press-releases/synaptics-provides-touch-interface-driver-android-software-development-ki).

Ultimately, you need to remember that you are developing for a device
agnostic platform, unlike the iPhone. There are budget touch screens
in the wild as well as expensive ones. Don't consider just the Droid
and Nexus One, consider the Dream and Tattoo as well. These sensitive
gestures that you're striving for will simply not work on these
devices.

Hekki

unread,
Feb 16, 2010, 5:47:25 AM2/16/10
to Android Developers
So Sean, your answer to that is simply : Don't use multitouch at
all !!

When you think that most games need more than one input, that gesture
like pinch zooming are so very intuitive, it is very sad.

And it's not only developpers who are finding that this completely
sucks, it's actually snowballing all over the place :

http://www.crunchgear.com/2010/02/15/question-why-does-the-iphone-still-have-the-best-touchscreen-in-the-industry/#comment-1209309

Come on Google, give us a way to compete against the iphone as a
gaming platform :s

Yahel

On 16 fév, 11:00, Sean Hodges <seanhodge...@googlemail.com> wrote:
> It doesn't seem as good because it isn't as good.
>

> Have you looked at the supported gestures page I linked you to?http://www.synaptics.com/solutions/technology/gestures/touchpad


>
> All of the gestures that the screen used by the Nexus One claims to
> support would not be affected by the issues you describe. You can
> pinch, press (1 or 2 fingers), tap, flick and "pivot rotate" (this is
> a 90 degree rotation gesture, see the link for more info). I can't
> speak for the Droid, because there doesn't seem to be any information
> about its hardware components, but they may have re-used the Synaptics
> touch interface driver to maintain a consistent feel with existing
> phones on the market

> (http://www.synaptics.com/about/press/press-releases/synaptics-provide...).

Sean Hodges

unread,
Feb 16, 2010, 6:18:36 AM2/16/10
to android-d...@googlegroups.com
> So Sean, your answer to that is simply : Don't use multitouch at
> all !!

No.

My point was that you shouldn't rely on the touch screen for complex
gestures (particularly multi-touch). Otherwise your game will be
useless to anyone with a handset that doesn't support dual/multi
touch, or has characteristics that make the gestures less precise
(like having a smaller screen). By all means use multi-touch gestures,
but ensure that the gestures are simple and provide alternative
methods of user input where necessary.

Perhaps I was making some assumptions, there may be games developers
out there who only want to support a handful of devices - particularly
the high-end spec ones, and have no interest in the mid/low budget
ones aimed for the mass market.

> Come on Google, give us a way to compete against the iphone as a
> gaming platform :s

Google?! Don't you mean Motorola / HTC / Samsung / Sony / etc?

I have a wide range of rich highly immersive games on my Android
device now, compared to the limited number there were last year. Just
because certain multi-touch gestures are not possible on many of the
handsets does not mean it is not providing a competitive gaming
platform to the iPhone.

code_android_festival_way

unread,
Mar 3, 2010, 8:32:45 AM3/3/10
to Android Developers
To be honest this is really bad news. Marketed as a "superphone" and
not being able to even do valuable multi touch in gaming is pretty
weird/weak! Even a simple pong game (1 human vs 1 human on 1 device)
is not possible with that cheap screen.

Daniel

unread,
Mar 3, 2010, 8:54:48 AM3/3/10
to Android Developers
I love my nexus but I gotta agree with you. Between the not-yet-fixed
radio issues (yes, not fixed yet!) and this cheap touch screen I feel
like I got a bunch of money stolen from me.
I can't believe I'm saying this, but 3 years later, the 1st gen iPhone
has a better touch screen than the 2010 superphone... this is BAD.

Yeah, you should definitely consider other devices when creating games
with multitouch gestures, and add different types of inputs.

Also, I do understand is not directly Google's, as Sean said above.
But wasn't Google directly involved in designing the Nexus One? The
Superphone sold directly by Google because they found to be SO GOOD,
yet it uses a really cheap touchscreen.

Sorry, but this is very upsetting.

On Mar 3, 8:32 am, code_android_festival_way

Peter Kirn

unread,
Mar 3, 2010, 11:48:45 AM3/3/10
to Android Developers
Dianne, I'm unclear about just one thing here -- which "special code"
-- you mean the code in the sample apps?

Relative to the conversation since -- I don't disagree; this isn't an
Android "bug" and it theoretically should be in the device driver. It
does raise a question, though, about the API design. If handset makers
are delivering data that doesn't work the way developers expect, and
the hardware itself can't be "fixed" (which it most definitely can't),
then the question is, how do you bridge the gap between what the API
appears to provide and what's actually there?

On the other sensors, we have the ability to set sensitivity and make
appropriate resource consumption tradeoffs, as with the timing
resolution of the accelerometer, for instance. Why not provide
something in the API that allows corrected data - with the tradeoff in
interpolation -- in case raw data is not accurate enough? For that
matter, given the wild variability here, maybe there needs to be some
sort of additional information provided about the device beyond just
whether it provides for these second+ touch points.

Peter

On Feb 12, 2:42 pm, Dianne Hackborn <hack...@android.com> wrote:
> Sorry I meant exactly what I said: this is how the touch screen hardware on
> the Nexus One works (which is essentially the same screen as on the G1 and
> myTouch).  The Droid has a sensor from a different manufacturer, with
> different behavior.  Other phones will likewise have different sensors.
>
> This has nothing to do with the Android platform.  Please do not file bugs
> about it.  Android is just reporting what the hardware is capable of
> reporting.  There is no "normalization" for games or such, there is just the
> data the screen provides.  (Though there is some special code in the current
> framework for cleaning up the data from the Droid screen; arguably this
> should be in the driver or firmware for it, since this is really screen and
> hardware specific kind of stuff.  At any rate, it is not applicable to basic
> screen capabilities like here.)
>
> There is a good analysis of the G1 class touch screen here:
>

> http://lukehutch.wordpress.com/2009/01/10/full-working-multitouch-on-...


>
> On Fri, Feb 12, 2010 at 4:39 AM, Sean Hodges <seanhodge...@googlemail.com>wrote:
>
>
>
>
>
> > I think what Dianne is saying is that the values you are seeing are
> > what is raw data returned from the sensor, it's not normalised for
> > multi-touch games, or for any particular purpose.
>
> > My understanding is that the values returned have different coordinate
> > spaces, and have a tendency to "jump" about when used directly (I
> > suspect this second issue is more an artefact of the device-specific
> > screen sensitivity, dents, scratches and the impact of screen
> > protectors).
>
> > Take a look at Luke Hutchison's multi-touch controller, it might
> > provide a suitable wrapper for your requirements:
>

> >http://lukehutch.wordpress.com/2010/01/06/my-multi-touch-code-ported-...


>
> > On Fri, Feb 12, 2010 at 8:39 AM, Kevin Duffey <andjar...@gmail.com> wrote:
> > > Ugh..sorry.. I hate using my moto droid to reply.. fat fingers and a
> > > horrible physical keyboard don't go together.
> > > Dianne, I don't understand your response.. it's quite clear from several
> > > developers that the multi-touch has problems severe enough that
> > > it's deterring game developers and others that would use it. You're
> > saying
> > > that it's normal behavior for the multi-touch to change the location of 2
> > > touches such that one of them is completely not in the location of where
> > you
> > > touched it? Is this an Android platform issue with how it handles sensor
> > > data.. or are you saying that the G1, myTouch, Nexus One and Moto Droid
> > (not
> > > sure about others) ALL have built their touch sensors to purposely report
> > > this sort of behavior when you touch, then release, then touch again as
> > > Robert and several other posters have state is happening?
>

> > > On Thu, Feb 11, 2010 at 7:46 PM, Dianne Hackborn <hack...@android.com>
> > > wrote:
>
> > >> On Thu, Feb 11, 2010 at 6:10 PM, Kevin Duffey <andjar...@gmail.com>


> > wrote:
>
> > >>> So what I want to know is what is being done about this?  Is there a
> > bug
> > >>> file and if so is it
>
> > >> This is how the sensor hardware works.  It is essentially the same
> > sensor
> > >> as the G1 and myTouch.  Please don't file a bug about it.
> > >> --
> > >> Dianne Hackborn
> > >> Android framework engineer

> > >> hack...@android.com


>
> > >> Note: please don't send private questions to me, as I don't have time to
> > >> provide private support, and so won't reply to such e-mails.  All such
> > >> questions should be posted on public forums, where I and others can see
> > and
> > >> answer them.
>
> > >> --
> > >> You received this message because you are subscribed to the Google
> > >> Groups "Android Developers" group.
> > >> To post to this group, send email to
> > android-d...@googlegroups.com
> > >> To unsubscribe from this group, send email to

> > >> android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>


> > >> For more options, visit this group at
> > >>http://groups.google.com/group/android-developers?hl=en
>
> > > --
> > > You received this message because you are subscribed to the Google
> > > Groups "Android Developers" group.
> > > To post to this group, send email to android-d...@googlegroups.com
> > > To unsubscribe from this group, send email to

> > > android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>


> > > For more options, visit this group at
> > >http://groups.google.com/group/android-developers?hl=en
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-d...@googlegroups.com
> > To unsubscribe from this group, send email to

> > android-develop...@googlegroups.com<android-developers%2Bunsubs cr...@googlegroups.com>


> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> --
> Dianne Hackborn
> Android framework engineer

> hack...@android.com

Hekki

unread,
Mar 4, 2010, 5:49:57 AM3/4/10
to Android Developers
Ah maybe we're going to be allowed to file a bug report now that the
all word knows with clue :

http://www.mobilecrunch.com/2010/03/03/nexus-one-multi-touch-bugs

Please tell us you are working on a solution or that there is no
solution and we should not rely on multitouch for our apps.
Either way, but don't let us in the dark please.

Diane, Romain, Fadden, anyone give us a clue please.

Yahel

Robert Green

unread,
Mar 4, 2010, 12:18:10 PM3/4/10
to Android Developers
Ugh, these articles are making me out to look like I was on some kind
of expose mission.

The conversation I had with the guy was like this:

He said, "Why didn't you use dual analog joysticks?"
I said, "Because it won't work right on HTC phones. Run my test app
to see why."
And now there are 200+ articles about it...

Hekki - This is not a bug. It's just a limitation of the specific
touch screen on HTC phones. Multitouch works but the point of my app
is to show game developers what does and doesn't work on specific
phones so that they can plan their control systems around that instead
of developing a control system that doesn't work (like I did on my
first try).

Hekki

unread,
Mar 4, 2010, 12:56:49 PM3/4/10
to Android Developers
Hi Robert,

I'm sorry I exposed your exposition mission, didn't mean to involve
you or anything.
Although it is a good thing that the information spreads, without
this, we won't have fixes anytime soon.

So you could actually confirm that this is HTC related ? I mean
hardware related ?

That is very very sad since 3 android phones out of 4 are HTCs, it
renders the all thing completely useless.
I was kind of hoping it was Android related so that the guys in the
Team could fix it fast.
Now if it's hardware related, there is no way we can have a fix.

That must frustrate the hell out of the Android team who worked on the
API implementation which I found easy to use.

Oh well, then I will double rant on the Market problems, to keep the
pressure on you Android Team !! :D

Thanks for the info Robert.

Yahel

Robert Green

unread,
Mar 4, 2010, 1:21:48 PM3/4/10
to Android Developers
It's ok, it's not you, it's all of the chicken little world-is-falling
sort of articles that name me. I didn't write anything or make that
comparison video. Anyways..

Multitouch is not useless, there are just limitations. Pinching works
just fine because the axis flipping doesn't matter (all you need is
the distance between the two points and the center of that line
segment). Touching in the opposite corners also works perfectly. The
only issues come when the two touch points are near-axis or crossing
over. We found some ways to make use of that to at least provide a
few extra buttons on screen that can be multitouched for our new
games.

I do hope that they put a little more time and money into the next
generation of hardware.

Tim H.

unread,
Mar 4, 2010, 1:44:19 PM3/4/10
to Android Developers
The problem is, though, is no one was really aware of these
"limitations" (developers or users), at least for the Nexus One. I'll
admit I didn't research before buying the N1 that it was "basically

the same sensor as the G1"

Up until now, with the addition of multitouch into the SDK, it's been
'Great! We can use multitouch for supported devices' - now it is 'you
can use two touches as long as you are careful about what data you
accept and hope it works correctly on certain devices'. This affects
apps very little (they are probably relying on simple pinch/zoom type
gestures, but I could imagine it puts a serious downfall on game
developers (I believe that's why you coded the test app, right?
Because your users were having problems).

My concerns are:

a) Google reps saying this 'issue' is directly related to the
touchscreen, therefore it's not considered an issue.
b) If the problem is because the touchscreen just can't handle
crossing/close paths of two points, there needs to be some kind of
software workaround to maybe throw out bad points and try to get
decent, non glitchy data - so developers can reliably use it.
Otherwise, developers will steer away from creating multitouch in
games, and you'll lose the edge of competing with iPhone style games
(and possibly getting iPhone developers to cross-develop).
c) If some devices are capable, and some are not - there needs to be a
way to say 'my app requires a device that fully supports multiple
touches' - which I'm pretty sure is not possible right now.

According to Cyanogen, there is a section in the framework that
specifically addresses the software workaround:

overlay/frameworks/base/core/res/res/values/config.xml
....

+ <!-- Enables special filtering code in the framework for raw
touch events
+ from the touch driver. This code exists for one particular
device,
+ and should not be enabled for any others. Hopefully in the
future
+ it will be removed when the lower-level touch driver
generates better
+ data. -->
+ <bool name="config_filterTouchEvents">false</bool>

So this tells me that it is known that either the screen doesn't
produce great results, the low-level driver doesn't do a great job,
and/or software might need to do some filtering on this data to get
decent results. I think I can now see why we had the multitouch
confusion, where we couldn't get a straight answer as to why it wasn't
implemented.

So game developers, can you work around this problem? Or will this
cause you to avoid implementing multitouch, since your users will only
have problems? My biggest issue is you can avoid using certain
'gestures', but the inverted issues and ghost points will still occur
when the user tries to do other gestures - and I'd think you would
have to filter those out.

-Tim

Sebastian Kleinau

unread,
Mar 4, 2010, 7:24:13 AM3/4/10
to Android Developers
Hi,
I am a computer science student working on a FTIR Do-It-Yourself
Multitouch-Table at university.
From reading many papers about multitouch I know about a capacitive
system called DiamondTouch
where this effect also happens and is called “shadowing”.
At the “Internation Tabletops and Surfaces 2009″ conference a paper by
Berard and Laurillau
was published that tries to solve that. Take a look at it:
http://iihm.imag.fr/publs/2009/ITS2009_Berard_DTMultiTouch.pdf
On page 2 figure 2 you will find an image showing exactly the same
problem and the text also
describes why this happens.
If you further search Google for DiamondTouch and how this works you
will understand the problem
and that it is indeed caused by the hardware. I didn't read the papers
in detail but I think it
can't be completely solved by software workarounds (I consider that
nobody would write papers about it if the problem was solved ;) ).
Reply all
Reply to author
Forward
0 new messages