title: Android KeyLogger (Java/NDK Api)
body: <p>Good day.</p>
  <p>I want to make an keylogger for android.</p>
  <p>Please do not mix KeyLogger with the idea of <code>onTextChanged</code> of <code>EditText</code> as I want to be able to read the typed keys <strong>OUT OF THE APPLICATION</strong></p>
  <p>We know couple of things.</p>
  <blockquote>
  <p>No controls over the other applications due to the security of <code>DVM</code>.</p>
  <p>Java API (Android Cross-Platform Language) do not provide any option to listen for key events outside the application.</p>
  <p>We have <a href="https://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html" rel="nofollow noreferrer">AccessibilityService</a> which I could not make work and neither could get the event when key was typed,for example, inside the other application.</p>
  </blockquote>
  <p><strong>Important Notice: The idea is for self-progressing and has nothing to do with the further development and deployment to anywhere</strong></p>
  <p>My question is the next.</p>
  <p>As far as we can reckon, Java Api for Android do not provide any way for logging the key events outside the application, so are there any ways to achieve the desired? I am thinking about the key event logger through NDK like so:</p>
  <blockquote>
  <p>NDK is for native development, meaning we can have access up to the heart of the Android (Kernel) this is my assumption and I can be wrong though.</p>
  <p>NDK is being written with the C/C++ which is a native language for Android, meaning we can go deeper into the OS.</p>
  </blockquote>
  <p>The last important part to notice. I wish do to the key logging <strong>WITHOUT</strong> rooting my phone, so please do not suggest rooting either.</p>
  <p>Anyway this can be achieved?</p>