2012-04-24 130 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

相关问题