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

