我正在研究什麼Android調用software-based sensors。從邏輯上講,我不能將我的算法直接放在Android的MotionManager中。這些算法可以用於不同的應用程序。某些特定參數可以由任何應用程序設置並影響所有其他參數的行爲。算法的輸出是100Hz下的float[4]
。如何製作類似Android系統服務的服務?
我正在尋找一個良好的設計模式,但我不知道這是否可能與Android,因爲:
我不能直接我的代碼添加到Android的MotionManager中(顯然)
在所有應用程序中導入的基本庫不是爲此目的而設計的。
Bind Services的「綁定」一方很有趣,但我認爲它們不適用於多個應用程序。此外,針對開發者的綁定代碼並不容易:[
registerListener (SensorEventListener listener, Sensor sensor, int samplingPeriodUs)
](https://developer.android.com/reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener,android.hardware.Sensor,int))。AIDL可以處理服務的「多應用程序」端,但我不覺得它是因爲與綁定服務(傳遞引用)相同的原因執行此操作的方式。
如果您需要IPC,「自然方式」是「AIDL」或「android.os.Messenger」,或者您可以創建一個「管道」並將其傳遞給另一個應用程序進行讀取/寫入 – pskink
您擁有的選項是1)根據@pskink評論或2)自定義AOSP。 – Onik