A new flag FLAG_EXCLUDE_STOPPED_PACKAGES in version 3.1 will appear:
If set, this intent will not match the components in packages that are currently stopped. If this is not specified, the default behavior is to include such applications in the result.
From the release notes for 3.1 :
Please note that the system adds FLAG_EXCLUDE_STOPPED_PACKAGES to all broadcast items.
And:
Applications are stopped when they are first installed, but not yet launched and when they are manually stopped by the user (in the Application Management section).
This seems to violate the behavior of INSTALL_REFERRER on devices 3.1+, since your application is not already running and therefore cannot receive the broadcast. Unfortunately, I do not know how to do this. Google could probably do something to fix this in its Market app (one way would be to just use FLAG_INCLUDE_STOPPED_PACKAGES , although I'm not sure what a great idea given all these new launch controls are).
source share