是否可以知道哪个应用程序绑定到我的服务?

时间:2013-06-17 12:09:16

标签: android android-service

当一个应用通过bindService()绑定我的服务时,将调用onBind()

我的问题是,我想知道哪个应用正在连接到我的服务。包名称,进程ID或在运行该应用程序时保持不变的任何信息都可以。

有可能吗?怎么样?

当一个应用程序调用我在aidl文件中定义的服务接口时出现同样的问题,我可以找出正在调用的应用程序吗?

1 个答案:

答案 0 :(得分:4)

您的Binder可以调用方法like getCallingUid(),然后(如果需要)通过ActivityManagerPackageManager交叉引用该信息,以找出可能的包名称来电者。

我说“可能的包名称”,因为android:sharedUserId表示多个应用可以共享一个UID。这是不寻常的,但肯定不是不可能的。