2013-07-03 26 views
0

我遇到了很奇怪的問題。 我有服務,必須發送命令「input keyevent NUMBER」。 我正在使用ProcessBuilder啓動它。奇怪的是 - 當我的活動(我用來啓動服務的活動)處於活動狀態時,將處理這些命令。 Hovewer,當Activity不在前臺時,這些命令沒有做任何事情!爲什麼是這樣?是否可以從Android服務運行ProcessBuilder?

我正在考慮創建JNI庫函數,它調用類似「系統(無論我想打電話)」的函數。是一個正確的方法嗎?

+0

爲什麼你使用'mkdir'和'ls'的過程?你知道java有[File#mkdir()](http://developer.android.com/reference/java/io/File.html#mkdir())和[File#listFiles()](http:// developer.android.com/reference/java/io/File.html#listFiles())? – BackSlash

+0

我無法發送什麼。事實上,我正在發送「input keyevent 87」 - 這是爲了切換到下一首歌曲(KeyEvent方法不適用於所有播放器,只有少數)。 –

+0

一般來說,它**確實很重要,因爲如果你可以用java做某件事情,那麼涉及一個過程是沒有意義的。你應該在你的問題中寫下真實的東西,更新它,並用你想發送的內容替換_「mkdir」,「ls>/path/to/some/thing」等,否則其他用戶可能會回答說沒有必要使用流程。 – BackSlash

回答

0

問題不在ProcessBuilder中。問題在於,我通過此服務附加到窗口的視圖具有FLAG_NOT_FOCUSABLE。所以,像「mkdir」和「ls」之類的任何其他shell命令都能正常工作,而「輸入」僅僅因爲視圖沒有焦點而被忽略。去除旗子解決了問題。

相關問題