Injecting to another application requires INJECT_EVENT permission
Closed this issue · 8 comments
GoogleCodeExporter commented
I get this error when running the test in the example:
java.lang.SecurityException: Injecting to another application requires
INJECT_EVENT permission
at android.os.Parcel.readException(Parcel.java:1218)
at android.os.Parcel.readException(Parcel.java:1206)
at
android.view.IWindowManager$Stub$Proxy.injectKeyEvent(IWindowManager.java:8
05)
at android.app.Instrumentation.sendKeySync(Instrumentation.java:859)
at android.app.Instrumentation.sendKeyDownUpSync(Instrumentation.java:871)
at com.jayway.android.robotium.solo.Solo.pressMenuItem(Solo.java:556)
at com.jayway.test.NotePadTest.testAddNote(NotePadTest.java:38)
at java.lang.reflect.Method.invokeNative(Native Method)
at
android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java
:205)
at
android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:1
95)
at
android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentati
onTestCase2.java:175)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at
android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.ja
va:430)
at
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:
1447)
I tried adding the permission to the manifest file, but that did not help.
Original issue reported on code.google.com by jaglas...@gmail.com
on 22 Feb 2010 at 7:31
GoogleCodeExporter commented
The security exception that you get means that the test cases are trying to
interact
with an application that they are not allowed to interact with (e.g. another
application or the platform). This tells me that Note pad does not start when
your
test cases start to execute. One example when this can happen is when the
emulators
lock screen is active. Then the test cases try to interact with the lock screen
instead and therefore a security exception is thrown.
Can you please make sure that Note pad does indeed start when you select the
example
test project and click run application as Android JUnit Test. If it does not
start,
try to run Note pad separately by right clicking it and select run as Android
Application. If that is successfull then try to run the test cases again.
If this does not work then please get back to me with more information and
observations.
Original comment by renasr...@gmail.com
on 22 Feb 2010 at 4:58
GoogleCodeExporter commented
Thanks for your quick reply. You were correct. This error is occurring because
the
lock screen is active. If I unlock the emulator after it starts and then start
the
test, it will run.
Is there a solution so that I can run this as an automated test and not have to
manually go to the home screen?
Original comment by jaglass...@gmail.com
on 22 Feb 2010 at 5:24
GoogleCodeExporter commented
Sorry, the above reply is from jaglassjr. I was signed into another account.
Original comment by jaglas...@gmail.com
on 22 Feb 2010 at 5:25
GoogleCodeExporter commented
Once you have unlocked the emulator there is no need to go the home screen. Its
just
the first time when you start the emulator that you need to unlock it. Im sure
there
must be an adb command that you can send to the emulator in order to unlock it.
Try
looking at different adb commands and see if you find one that suites your
needs.
Original comment by renasr...@gmail.com
on 22 Feb 2010 at 6:49
- Changed state: Invalid
GoogleCodeExporter commented
U can do the following:
KeyguardManager km =
(KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if (km.inKeyguardRestrictedInputMode())
{
KeyguardManager.KeyguardLock lock = km.newKeyguardLock("some_tag");
lock.disableKeyguard();
SystemClock.sleep(2000);
}
Original comment by magedark...@gmail.com
on 13 Oct 2010 at 1:52
GoogleCodeExporter commented
That's not a very good workaround; it requires adding that code to the
application under test and adding the android.permission.DISABLE_KEYGUARD
permission to your app.
This is described here:
http://developer.android.com/intl/fr/guide/topics/testing/testing_android.html#U
nlockDevice
Perhaps this is also useful for automatically unlocking the emulator:
http://bit.ly/cMrbEM
Original comment by chris@orr.me.uk
on 13 Oct 2010 at 8:23
GoogleCodeExporter commented
I am using SMS appliction in my project while testing through robotium when it
goes into SMS app it is not coming back to my applicion......if anyone knows
solution plz reply as soon as possible.
Original comment by fassi404@gmail.com
on 18 Nov 2010 at 4:35
GoogleCodeExporter commented
I have the same problem but I try to test UI with robotium.
Also I build project with gradle. When I worked with eclipse/IDEA(without
gradle) it worked fine.
Original comment by zamesIly...@gmail.com
on 26 Feb 2014 at 9:10