2010-12-06 8 views
5

Intento escribir una actividad como alternativa a los mapas de Google. Funciona perfecto al llamar por una url google-maps:Android Intent-filter for GEO-URI

<activity android:name="DataActivity" android:label="@string/app_name"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="http" android:host="maps.google.com" /> 
    </intent-filter> 
</activity> 

Pero por alguna razón no se muestra arriba al iniciar un Intención con un "geo" -uri.

Mi Actividad:

<activity android:name="DataActivity" android:label="@string/app_name"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="geo" android:host="*" /> 
    </intent-filter> 
</activity> 

The Caller (Esto inicia Google Maps y sin la opción de iniciar mi aplicación):

final String uri = "geo:" + lat + "," + lng; 
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri))); 
+0

¿cómo se resuelve el geo uri en su aplicación para obtener los datos de ubicación? – Radon8472

Respuesta

11

tratan con

<intent-filter android:priority="0"> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <category android:name="android.intent.category.BROWSABLE"/> 
    <data android:scheme="geo"/> 
</intent-filter> 
+0

prioridad obsoleta – cV2

5

manera correcta para agregar esquemas múltiples:

 <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="geo"/> 
     </intent-filter> 

     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="google.navigation"/> 
     </intent-filter> 

     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data 
       android:host="maps.google.com" 
       android:scheme="https"/> 
     </intent-filter> 

     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data 
       android:host="maps.google.com" 
       android:scheme="http"/> 
     </intent-filter> 
+0

"maps.google.com" en http y https no funciona, problemas conocidos, tengo un s7 con 6.0.1 Android más reciente ... solo mi aplicación se activó ... – cV2

Cuestiones relacionadas