KeyListener is (generally) only for physical keyboards.  It may not even be
used for those -- an IME has first crack at hard key events and may do its
own massaging of them and do calls on its InputConnection.  (Consider for
example a Chinese IME that converts input on a hard keyboard to Chinese
text.)

As far as where data goes...  it depends on what you are talking about.  The
general flow for touch input is:

- MotionEvent delivered to IME window.
- IME makes calls on the target InputConnection based on the touch data.
- The InputConnection calls appear in the target app, which for a TextView
performs the appropriate editing of its text.

On Sun, Sep 5, 2010 at 9:42 PM, Tez <[email protected]> wrote:

> and another thing....in all these "key" interactions, (physical or
> IME), am I correct in assuming that all data must pass thru the
> Framework classes like WindowManagerService, KeyInputQueue etc?
>
> Cheers,
> Earlence
>
> On Sep 6, 12:02 am, Dianne Hackborn <[email protected]> wrote:
> > You can't get that from the IME.  What you get is edit operations via
> calls
> > on InputConnection.
> >
> > You will need to implement your own keyboard in your app if you want to
> > monitor individual interactions with it.
> >
> >
> >
> > On Sun, Sep 5, 2010 at 4:18 AM, Tez <[email protected]> wrote:
> > > Biometric Measure with neural nets: Key stroke patterns.
> > > For that I need data about how something was typed in:
> >
> > > Eg: EARLENCE
> >
> > > 1. time for which each key was pressed.
> > > 2. interval between consecutive key presses.
> >
> > > Cheers,
> > > Earlence
> >
> > > On Sep 4, 10:44 pm, Dianne Hackborn <[email protected]> wrote:
> > > > You can override EditText to return your own InputConnection.
> >
> > > > But...  if you want KeyEvents, you won't get KeyEvents.  Period.
>  There
> > > are
> > > > no KeyEvent objects involved in this ANYWHERE.  At all.  The user is
> > > > touching on the screen (that is a touch event).  The IME turns that
> into
> > > an
> > > > edit operation on the TextView (that is a call to InputConnection).
>  No
> > > > KeyEvent.
> >
> > > > What you are claiming to want to do simply doesn't make sense.  Let's
> > > back
> > > > up here and see what you are actually trying to accomplish?  Not
> timing
> > > > between two key events.  What is the goal you are trying to achieve?
> >
> > > > On Sat, Sep 4, 2010 at 6:55 AM, Tez <[email protected]> wrote:
> > > > > How do I intercept the InputConnection Calls? Would I have to
> modify
> > > > > the IME or use a custom one?
> > > > > Having text change listeners would not be of use as I need key
> timing
> > > > > information. This I can only get thru KeyEvents.
> >
> > > > > Cheers,
> > > > > Earlence
> >
> > > > > On Sep 4, 12:39 pm, Dianne Hackborn <[email protected]> wrote:
> > > > > > On Fri, Sep 3, 2010 at 10:48 PM, Tez <[email protected]>
> > > wrote:
> > > > > > > 1. I have registered a KeyListener on an EditText. When I use
> the
> > > soft
> > > > > > > keyboard to input text, my listener is not called. How Do I
> > > intercept
> > > > > > > these events?
> >
> > > > > > InputConnection is how edit operations are delivered through an
> IME.
> > > > >  These
> > > > > > will appear as direct edits of the text in the EditText, so to
> watch
> > > that
> > > > > > you either need to intercept the InputConnection calls or have
> > > listeners
> > > > > for
> > > > > > text changes.
> >
> > > > > > > 2. How do I measure time interval between KeyEvents. The
> methods
> > > are
> > > > > > > confusing and documentation is not good. Plz put pseudo-code
> here.
> >
> > > > > > Er...  there is nothing really to document here.
> > > > >  SystemClock.uptimeMillis()
> > > > > > returns the current time in what are probably appropriate units
> for
> > > you.
> > > > > >  Call it at the points you are interested in.  Compare the
> values.
> >
> > > > > > (Didn't we just have a thread on this?)
> >
> > > > > > --
> > > > > > Dianne Hackborn
> > > > > > Android framework engineer
> > > > > > [email protected]
> >
> > > > > > 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
> > > [email protected]
> > > > > To unsubscribe from this group, send email to
> > > > > [email protected]<android-developers%[email protected]>
> <android-developers%[email protected]<android-developers%[email protected]>
> >
> > > <android-developers%[email protected]<android-developers%[email protected]>
> <android-developers%[email protected]<android-developers%[email protected]>
> >
> >
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/android-developers?hl=en
> >
> > > > --
> > > > Dianne Hackborn
> > > > Android framework engineer
> > > > [email protected]
> >
> > > > 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
> [email protected]
> > > To unsubscribe from this group, send email to
> > > [email protected]<android-developers%[email protected]>
> <android-developers%[email protected]<android-developers%[email protected]>
> >
> > > For more options, visit this group at
> > >http://groups.google.com/group/android-developers?hl=en
> >
> > --
> > Dianne Hackborn
> > Android framework engineer
> > [email protected]
> >
> > 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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Dianne Hackborn
Android framework engineer
[email protected]

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 [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