1

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

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

有可能吗?怎么做?

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

4

1 回答 1

4

Binder可以调用类似getCallingUid()的方法,然后(如果需要)将该信息与类似的东西交叉引用ActivityManagerPackageManager找出调用者的可能包名称。

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

于 2013-06-17T12:18:56.577 回答