2017-03-22 135 views
0

我有運行在使用以下標記在清單Android的服務綁定訪問控制

android:process=:newProcess 

我使用服務類的單獨過程的活性的應用程序,以允許兩個進程進行通信。現在我想啓用某種訪問控制,以便只有特定的活動可以綁定和使用該服務。 這樣的事情可能嗎?

我需要這個,因爲我在開發SDK,我想讓SDK的用戶很難對其進行反向工程。我不希望他們能夠綁定到我的服務並訪問我的服務正在使用的數據。

一種選擇是傳遞一個字符串作爲意圖中的關鍵字,並且該服務的onBind方法可以驗證該關鍵字並且只允許正確綁定,但是sdk的用戶可以簡單地看到該關鍵字(因爲字符串不會被職業警衛混淆)並且自己傳遞密鑰並且能夠綁定到服務。

回答

0

我想到的一種可能的方法是在每次調用SDK執行操作時生成UUID。該UUID只能在SDK的範圍內訪問,因此用戶無法處理它。 這個uuid將是我的鑰匙,我將通過意圖傳遞,並且只有當這個uuid匹配時我才允許服務綁定。 這確保只有具有對該uuid訪問權限的類才能夠綁定到我的服務,並且每次調用時uuid都會重新生成到我的SDK。

我目前沒有預見到這個問題,但我可能錯過了一些東西。