2012-04-24 129 views
0

我想編寫一個Android應用程序(我們稱之爲'ZX'),它可以與其他未知的應用程序進行通信。Android上通信應用程序之間的身份驗證

ZX不想與所有其他應用程序進行通信。它只想通過ZX許可與用戶批准的應用進行通信。用戶可以通過ZX的任何活動隨時授予和撤銷ZX權限。

爲了做到這一點,ZX需要確定哪個應用程序試圖與之通信,並且在應用程序首次與ZX連接時,需要顯示其名稱(或其他唯一的名稱識別它)給用戶,詢問它是否應該允許。

問題:

1)如何識別調用應用程序?

2)建議採用什麼IPC機制?

+0

你是什麼意思認證? – Aidanc 2012-04-24 17:03:37

+0

我的意思是知道哪個應用程序正在敲門。 – Vincent 2012-04-24 17:08:27

+0

然後檢查我的答案。它應該做你想做的。 – Aidanc 2012-04-24 17:09:06

回答

1

這有點難以給予了極大的回答這個問題,因爲你是從細節很神祕的。不過,我要在它刺傷..

根據什麼「 ZX「的確如此,像Observer Pattern就可以爲此工作。如果應用程序想要與ZX通信,他們會向ZX發送一條消息,將其添加到ZX維護的查找表/列表中。

基本上你有這樣的事情......

應用AI希望與ZX溝通。它向ZX發送一條消息,其中包含有關應用程序的信息(無論您需要什麼,IP地址等)。該信息可以轉到諸如addApplication()之類的功能,這使得新的CommApp對象存儲關於應用程序的所有相關信息。

ZX然後可以發送AI唯一的認證密鑰,它可以用於進一步的通信。這可以處理實際的會話。兩個應用程序之間的任何進一步通信都可以使用唯一密鑰進行驗證。這種方法假設您使用身份驗證來識別不同的應用程序,而不是試圖將「壞人」擋在外面。

如果你可以擴展你的實際情況,我很樂意編輯我的問題,以滿足你的需求。

+0

如果需要,我可以添加詳細信息。 – Vincent 2012-04-24 17:09:01

+0

@Vincent那麼,我的答案的哪一部分不能回答你的問題? – Aidanc 2012-04-24 17:10:01

+0

這是一個有用的答案。但是,ZX需要向用戶顯示類似於「應用程序AI想要訪問我的資源K.允許/拒絕?」的內容,因此它需要向用戶顯示標識調用應用程序的內容。 – Vincent 2012-04-24 17:12:24

1

「在Binder或Messenger中使用Binder或Messenger是Android中RPC風格IPC的首選機制,它提供了一個定義良好的界面,可根據需要對端點進行相互認證。」

http://developer.android.com/training/articles/security-tips.html#IPC

+0

雖然真的,我找不到任何這種實際的實現。請在發送者和接收者之間有相互認證的情況下提供實施的來源。 – Dio 2015-07-03 13:49:59

相關問題