我在代碼中的某處,我只有非常有限的權限,但必須將數據外部傳送到Android應用程序。 (Android系統C代碼) 顯然我不能在那裏啓動一個活頁夾服務,但我可以連接到一個已經運行的服務。因此,我的實現每隔一秒檢查一次服務是否可用,如果可用,它將連接並開始發送數據。這工作正常。Android Binder IPC addService:有沒有辦法再次刪除服務?
我的問題如下。如果我殺死服務二進制/進程,客戶端不知道該服務不再可用。有沒有辦法刪除我使用addService(...)
添加的服務?客戶做getService()
。
我不能使用「這個解決方案」部分,因爲兩端都是C代碼,我甚至沒有在jni中。客戶端是一些沒有權限的正在運行的android系統代碼,而服務器是一個用C語言編寫的小型可執行文件,由java調用,並從命令行啓動。 但是你是對的,我應該每隔幾秒鐘看一下客戶端內的check_service,這可能比getservice便宜。 我研究過service_manager之前(http://stackoverflow.com/questions/22460097/c-binder-without-addservice/25768973#25768973) – user3387542 2014-09-11 15:00:55
或者你有一個想法如何從非常不允許的未經授權的情況下傳遞連續數據系統內部的一個正常的非根java應用程序?我無法以root身份啓動它們。但是我可以以root身份啓動第三個進程,這是我目前的解決方案。一個甚至沒有能力訪問文件系統。因此,我甚至沒有爲套接字打擾。 – user3387542 2014-09-11 15:09:48
我想現在使用check_service,但是我找不到實現示例或者有關如何使用它的參考。 add_service()和getService()正在工作,但如何檢查服務是否可用?我的代碼與此https://github.com/vecio/AndroidIPC類似。 – user3387542 2014-09-16 10:14:05