2015-04-07 19 views
0

我使用該函數用於模擬鍵碼:模擬鍵代碼,所有的應用程序

public static void simulateKey(final int KeyCode) { 

    new Thread() { 
     @Override 
     public void run() { 
      try { 

       Instrumentation inst = new Instrumentation(); 
       inst.sendKeyDownUpSync(KeyCode); 
      } catch (Exception e) { 
       Log.e("Exception when sendKeyDownUpSync", e.toString()); 
      } 
     } 

    }.start(); 
} 

但我想用它所有的應用程序。例如,如果應用程序A在背景上模擬一些鍵碼,它應該在應用程序B在上面時工作。

+1

它不可能我害怕。每個應用都在自己的沙箱中工作。 – Stan

+0

但我可以顯示吐司消息或從其他應用程序啓動意圖有什麼區別? – Shockelduck

+0

區別在於誰在控制。 –

回答

0

這是不可能的,原因很好。你不希望一個人的應用程序只需點擊另一個應用程序的按鈕。它可能會點擊「將我的私人照片發佈給我的所有聯繫人」,儘管您知道...
即使沒有這些,目標應用的佈局可能會隨更新而改變;它可以點擊不同的按鈕,或者點擊不再有按鈕的地方。

你可以做什麼,是使用Intent。通過使用Intents,取決於接收應用程序是否採取行動。另外,佈局的更新不會改變意圖的接收。
接收該意圖的應用程序當然有可能改變,並以不同的方式處理該意圖;但至少它是故意的。

+0

如何在不重新打開應用程序的情況下使用Intent傳遞數據? – Shockelduck

+0

'Intent'是唯一一個特殊的AOS功能,用於像你提到的任務 - 在應用程序之間傳遞數據,啓動其他應用程序,但不會控制其他應用程序。 「吐司」只是共享一個屏幕,沒有更多。 – Stan

相關問題