如何判断哪个第三方应用程序将startActivity称为我的应用程序

时间:2014-09-04 15:53:24

标签: android android-intent android-activity start-activity

假设我的设备上有两个应用程序,GoodApp和EvilApp。我没有写任何一个。这两个应用都可以使用ACTION_SEND Intent在我的应用中启动导出的活动,并传入数据。它们都调用startActivity, not startActivityForResult。

我想信任从GoodApp收到的数据,但不信任并忽略我从EvilApp收到的数据。

我的Activity如何判断哪个应用启动了它? Activity.getCallingActivity()返回null,因为它没有为结果启动。我无法向应用程序发送消息,询问“你是谁给我发了这个?”因为他们不是为了回应而写的,而且他们的代码不受我的控制。有什么方法可以区分吗?

1 个答案:

答案 0 :(得分:0)

要求应用使用startActivityForResult以便您处理他们的请求吗? (:

ActivityManager.getRunningTasks可能会给你一个提示,但是它的文档说明不要将它用于你所要求的事情。