I haven't issues a bug report yet as i was not sure that my
implementation is correct. I have some sample code lying around that
could help reproduce the bug, however it needs some tries before it
"works" and is probably hard to debug.

On 6 Feb., 04:57, Peter Kirn <[email protected]> wrote:
> Did anyone ever fill out a bug report for this? I can confirm it as
> well. I think it can safely be described as a "defect."
>
> The most significant issue is that of the conflicting flag on those
> touch up events. I can confirm that the video is exactly accurate.
>
> So, the next questions --
>
> How should a developer even verify whether the hardware 
> supportsmultitouchaccurately, if it returns the second point when it's not
> accurate? (I've seen at least one app do a "calibration" test to
> verify it's not working.)
>
> Is there any workaround to try to filter this out?
>
> Has anyone heard status on this issue from, say, Motorola or Google
> engineers? The threads I saw seem to suggest people are unaware of the
> issue (even though it's a fundamental hardware-firmware issue),
> meaning we'd better get on that bug report.
>
> On the other hand, it really becomes a device bug, not a platform bug.
>
> Peter
>
> On Jan 29, 6:03 pm, Mario Zechner <[email protected]> wrote:
>
> > Thanks, i stubled upon your blog today and already found a lot of
> > usefullcodethere. I guess that's how you arrived at this post :)
>
> > It's kind of a sad situation really. I'd love to use android to it's
> > full potential but it seems that some things aren't just where they
> > should be yet. Never the less, android is the way to go!
>
> > On 29 Jan., 20:46, luke <[email protected]> wrote:
>
> > > All these bugs (and several more you may not have discovered yet, e.g.
> > > event noise on touch up/down) are covered in excruciating detail on my
> > > blog,http://lukehutch.wordpress.com/android-stuff.  The main posts
> > > you will want to read are:
>
> > >http://lukehutch.wordpress.com/2009/01/10/full-working-multitouch-on-......
>
> > > These are hardware / firmware limitations and it is actually
> > > impossible to overcome them on current hardware/firmware.  Some could
> > > possibly be fixed with a firmware update from synaptics though this
> > > probably won't happen (e.g. partially raising a touch point up loses
> > > one of X or Y but not the other) and some of the bugs will not be
> > > fixed without new hardware (the fact it's a 2x1D device and not a 2D
> > > device).
>
> > > --
> > > Luke Hutchison
>
> > > On Jan 28, 7:06 pm, Mario Zechner <[email protected]> wrote:
>
> > > > It seems Toon Warz, another game usingmultitouchalso has some issues
> > > > on N1 and Droid. Can others confirm the problem with thecodeposted
> > > > above? Did anyone arrive at a solution? This is a pretty bad situation
> > > > for game developers as nothing freaks users more out than bad
> > > > controls. I think thecodeabove is even a democodefrom the android
> > > > framework so i find it kinda strange that the problem didn't pop up
> > > > during their testing phase. I also couldn't find any information on
> > > > the logcat output telling me about the drop of a bad pointer.
>
> > > > On 23 Jan., 19:39, mzechner <[email protected]> wrote:
>
> > > > > I can confirm this problem using the samplecodeabove, my owncode
> > > > > and playing multipong. I created two videos, one showing the problem
> > > > > for the samplecodeabove and one showing it in multipong.
>
> > > > >http://www.youtube.com/watch?v=865cd2Ui0Co(samplecode)http://www.yout...)
>
> > > > > Each time thepointergo crazy LogCat displays messages tagged
> > > > > "InputDevice" saying "droppingbadpointer#0", in all 3 cases (sample
> > > > >code, mycode, multipong). ThepointerIds get mixed up, and as can be
> > > > > seen in the video for the samplecodeabove the x coordinate for the
> > > > > secondpointeris wrong. I have a suspicion that this might be a
> > > > > driver related bug. In any way it makes writting games withmultitouch
> > > > > impossible.
>
> > > > > The bug can be reproduced by quickly tapping around and then settle
> > > > > with 2 digits on the screen. It does not work always but often enough
> > > > > to be annoying in a game with a dual analog stick setup on screen
> > > > > (like in mycode).
>
> > > > > I hope this gets fixed asap. If more people can confirm this i file a
> > > > > bug athttp://b.google.com/
>
> > > > > On 15 Jan., 21:32, Mirmathrax <[email protected]> wrote:
>
> > > > > > here is in the original text from the post, this explains how to 
> > > > > > make
> > > > > > the bug occur:
>
> > > > > >  1)  Touch screen with finger 1 and start doodling
> > > > > >      2)  Without removing finger 1, touch screen with finger 2 and
> > > > > > start doodling
> > > > > >      3)  Remove finger 1 from the screen (without removing finger 2)
> > > > > >      4)  Replace finger 1 on the screen and start doodling again
> > > > > > (never remove finger 2)
> > > > > >      5)  Voila, you will see the bug.  The drawn lines for finger 1
> > > > > > will suddeny connect to finger 2.
>
> > > > > > This is because  there is a bug when the first finger is placed back
> > > > > > down again, the event only has points for the wrong finger!  Even
> > > > > > though finger 1 went back down at a new location, thecodethinks for
> > > > > > some reason that finger 2 is the one that went back down (but it 
> > > > > > never
> > > > > > went up).
>
> > > > > > -Colin
>
> > > > > > On Jan 15, 2:35 pm, rollbak <[email protected]> wrote:
>
> > > > > > > Can you please explain which the issue is?
>
> > > > > > > On Jan 15, 1:09 pm, Mirmathrax <[email protected]> wrote:
>
> > > > > > > > Multi-touch API is bugged (at least on Motorola Droid). Here is 
> > > > > > > > a
> > > > > > > > method to reproduce the error for analysis:
>
> > > > > > > > 1)  Create a new android project in Eclipse with the following 
> > > > > > > > fields:
>
> > > > > > > >  Project name:           PointerLocation
> > > > > > > >  Build target:              Android 2.0.1
> > > > > > > >  Application Name:     PointerLocation
> > > > > > > >  Package Name:        com.example.pointerlocation
> > > > > > > >  Create Activity:         PointerLocation
>
> > > > > > > > 2)  Copy the followingcodeand paste this into the
> > > > > > > > PointerLocation.java file that is automatically created
>
> > > > > > > > /*
> > > > > > > >  * Copyright (C) 2007 The Android Open Source Project
> > > > > > > >  *
> > > > > > > >  * Licensed under the Apache License, Version 2.0 (the 
> > > > > > > > "License");
> > > > > > > >  * you may not use this file except in compliance with the 
> > > > > > > > License.
> > > > > > > >  * You may obtain a copy of the License at
> > > > > > > >  *
> > > > > > > >  *      http://www.apache.org/licenses/LICENSE-2.0
> > > > > > > >  *
> > > > > > > >  * Unless required by applicable law or agreed to in writing, 
> > > > > > > > software
> > > > > > > >  * distributed under the License is distributed on an "AS IS" 
> > > > > > > > BASIS,
> > > > > > > >  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
> > > > > > > > or
> > > > > > > > implied.
> > > > > > > >  * See the License for the specific language governing 
> > > > > > > > permissions and
> > > > > > > >  * limitations under the License.
> > > > > > > >  */
>
> > > > > > > > package com.example.pointerlocation;
>
> > > > > > > > import android.app.Activity;
> > > > > > > > import android.content.Context;
> > > > > > > > import android.graphics.Canvas;
> > > > > > > > import android.graphics.Paint;
> > > > > > > > import android.graphics.Paint.FontMetricsInt;
> > > > > > > > import android.os.Bundle;
> > > > > > > > import android.util.Log;
> > > > > > > > import android.view.MotionEvent;
> > > > > > > > import android.view.ViewConfiguration;
> > > > > > > > import android.view.WindowManager;
> > > > > > > > import android.view.VelocityTracker;
> > > > > > > > import android.view.View;
>
> > > > > > > > import java.util.ArrayList;
>
> > > > > > > > /**
> > > > > > > >  * Demonstrates wrapping a layout in a ScrollView.
> > > > > > > >  *
> > > > > > > >  */
> > > > > > > > public class PointerLocation extends Activity {
> > > > > > > >     @Override
> > > > > > > >     protected void onCreate(Bundle icicle) {
> > > > > > > >         super.onCreate(icicle);
> > > > > > > >         setContentView(new MyView(this));
>
> > > > > > > >         // Make the screen full bright for this activity.
> > > > > > > >         WindowManager.LayoutParams lp = 
> > > > > > > > getWindow().getAttributes();
> > > > > > > >         lp.screenBrightness = 1.0f;
> > > > > > > >         getWindow().setAttributes(lp);
> > > > > > > >     }
>
> > > > > > > >     public static class PointerState {
> > > > > > > >         private final ArrayList<Float> mXs = new 
> > > > > > > > ArrayList<Float>();
> > > > > > > >         private final ArrayList<Float> mYs = new 
> > > > > > > > ArrayList<Float>();
> > > > > > > >         private boolean mCurDown;
> > > > > > > >         private int mCurX;
> > > > > > > >         private int mCurY;
> > > > > > > >         private float mCurPressure;
> > > > > > > >         private float mCurSize;
> > > > > > > >         private int mCurWidth;
> > > > > > > >         private VelocityTracker mVelocity;
> > > > > > > >     }
>
> > > > > > > >     public class MyView extends View {
> > > > > > > >         private final ViewConfiguration mVC;
> > > > > > > >         private final Paint mTextPaint;
> > > > > > > >         private final Paint mTextBackgroundPaint;
> > > > > > > >         private final Paint mTextLevelPaint;
> > > > > > > >         private final Paint mPaint;
> > > > > > > >         private final Paint mTargetPaint;
> > > > > > > >         private final Paint mPathPaint;
> > > > > > > >         private final FontMetricsInt mTextMetrics = new 
> > > > > > > > FontMetricsInt
> > > > > > > > ();
> > > > > > > >         private int mHeaderBottom;
> > > > > > > >         private boolean mCurDown;
> > > > > > > >         private int mCurNumPointers;
> > > > > > > >         private int mMaxNumPointers;
> > > > > > > >         private final ArrayList<PointerState> mPointers
> > > > > > > >                  = new ArrayList<PointerState>();
>
> > > > > > > >         public MyView(Context c) {
> > > > > > > >             super(c);
> > > > > > > >             mVC = ViewConfiguration.get(c);
> > > > > > > >             mTextPaint = new Paint();
> > > > > > > >             mTextPaint.setAntiAlias(true);
> > > > > > > >  
>
> ...
>
> Erfahren Sie mehr »

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

Reply via email to