当一个应用通过bindService()绑定我的服务时,将调用onBind()。
我的问题是,我想知道哪个应用正在连接到我的服务。包名称,进程ID或在运行该应用程序时保持不变的任何信息都可以。
有可能吗?怎么样?
当一个应用程序调用我在aidl文件中定义的服务接口时出现同样的问题,我可以找出正在调用的应用程序吗?
答案 0 :(得分:4)
您的Binder
可以调用方法like getCallingUid()
,然后(如果需要)通过ActivityManager
和PackageManager
交叉引用该信息,以找出可能的包名称来电者。
我说“可能的包名称”,因为android:sharedUserId
表示多个应用可以共享一个UID。这是不寻常的,但肯定不是不可能的。