In order for your application to be granted 
android.permission.INJECT_EVENTS, your app has to be signed with the 
system's platform key.  See  
http://stackoverflow.com/questions/5383401/android-inject-events-permission 

On Wednesday, March 14, 2012 2:47:03 AM UTC-7, 献静 赵 wrote:
>
> Hi All, 
> Can you guys help me solve the problem below? 
>
> For ICS, it is easy to do the screen shot manually, by press the POWER 
> and Volumn_Down key same time, and there is a instrument test under / 
> icecreamsandwich/frameworks/base/packages/SystemUI/tests/ , 
>
> 101     /** 
> 102      * Inject the key sequence to take a screenshot. 
> 103      */ 
> 104     private void takeScreenshot() { 
> 105         getInstrumentation().sendKeySync(new 
> KeyEvent(KeyEvent.ACTION_DOWN, 
> 106                 KeyEvent.KEYCODE_POWER)); 
> 107         getInstrumentation().sendKeySync(new 
> KeyEvent(KeyEvent.ACTION_DOWN, 
> 108                 KeyEvent.KEYCODE_VOLUME_DOWN)); 
> 109         try{ 
> 110             Thread.sleep(2000); 
> 111         }catch(Exception e){ 
> 112         } 
> 113         // the volume down key event will cause the 'volume 
> adjustment' UI to appear in the 
> 114         // foreground, and steal UI focus 
> 115         // unfortunately this means the next key event will get 
> directed to the 
> 116         // 'volume adjustment' UI, instead of this test's activity 
> 117         // for this reason this test must be signed with platform 
> certificate, to grant this test 
> 118         // permission to inject key events to another process 
> 119         getInstrumentation().sendKeySync(new 
> KeyEvent(KeyEvent.ACTION_UP, 
> 120                 KeyEvent.KEYCODE_VOLUME_DOWN)); 
> 121         getInstrumentation().sendKeySync(new 
> KeyEvent(KeyEvent.ACTION_UP, 
> 122                 KeyEvent.KEYCODE_POWER)); 
> 123     } 
> and in it's AndroidManifest.xml file, there is the user-permission 
> flag: 
>    <uses-permission android:name="android.permission.INJECT_EVENTS" /> 
> I tried it, and it works, it can take the screenshot. 
>
> Now I want to borrow this code a camera test case, it also use the 
> instrument, I add the android.permission.INJECT_EVENTS in 
> menifest.xml, (but this doesn't exist in Camera app's 
> AndroidManifest.xml), andI run case, only see the volume adjustment' 
> UI appear in the ui. Seems that the 
> getInstrumentation().sendKeySync(new 
> KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_POWER)), didn't run or 
> take effect. 
>
> Is it because the camera APP's AndroidMenifest.xml doesn't include the 
> <uses-permission android:name="android.permission.INJECT_EVENTS" />? 
>
>
>
>
>
>
> why, 
>
>

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

Reply via email to