I was trying to intercept a google maps intent as the following:
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:37.423156,-122.084917"));
but I haven't found any example, link or documentation of this. So, I'm thinking that unfortunately is not possible.
In the Manifest file I put several intent filters. Specially I think that the next intent filter must match with the mentioned intent.
<intent-filter>
<action android:name="android.content.Intent.ACTION_VIEW" />
<data android:scheme="geo"/>
</intent-filter>
In addition I tried to investigate what activities match with this particular intent by means of:
List resolves = getPackageManager().queryIntentActivities(myIntent, 0 );
ResolveInfo firstRevolve=(ResolveInfo) resolves.get(0);
IntentFilter myIF=firstRevolve.filter;
Nevertheless only MapsActivity matches with the intent, not my Activity, and surprisingly myIF is null, so that I can't obtain the intent filter that the google maps activity uses.
In addition I installed "Intent Intercept" from Android Market, but it does not capture this intent.
So, I need some help/idea. Somebody knows what is happening? In my opinion Google restricts this interceptions but this restriction is not specified.
Any help will be appreciated. Best regards, Pablo.
The code example below is just working fine in my project.
This manifest entry worked for me:
in your activity you can check onCreate:
For this you should add the following
<intent-filter>
inside the<activity></activity>
tag of the respective ACTIVITY inAndroidManifest.xml
file.I have been trying to get this to work as well. there seems to be couple of way here:
1) Intents with scheme: "http" or "https" with authority "maps.google.com". This seems to function normally as standard intents do. 2) using the "geo" scheme as OP mentioned in the question. Seems like this is not open to be intercepted.
@CommonsWare Even if one uses "android.intent.action.VIEW" in the manifest with the following filter: ,
it seems NOT possible to intercept it.
When you mentioned "I am rather sure that it is.", did you mean it IS possible or it IS NOT possible?
I use multi intent filter and this work with me
I am rather sure that it is.
You have the wrong action string. If you read the documentation, the string representation of
ACTION_VIEW
is:which is not what you have in your
<intent-filter>
.