or should i send some extra data in the Intent to know the call ?if there is no predefined method,like getIntent and do something with it ?
I think that you should expose several intents for the same activity in your manifest, then test the calling intent to adapt your behaviour.
Example for your activity intent filter in the manifest:
and corresponding code in your activity onCreate:
if (getIntent().getAction().equals(Intent.ACTION_VIEW)) {
// do whatever you need to do here
} else if (getIntent().getAction().equals(Intent.ACTION_PICK)){
...
}