2010-01-07 9 views
6

Intento atrapar un intento de búsqueda en Android Market.¿Indagaciones de búsqueda de mercado?

Esa es la manera que inicie Android Market y la búsqueda de una aplicación por nombres de paquetes:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:com.google.somepackage"))); 

Ahora, aquí está el filtro de intención para una de mis actividades:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="market" android:host="search" /> 
</intent-filter> 

yo esperaría Android para preguntarme qué aplicación debe manejar la intención que no sucede.
Sin embargo, si reemplazo market con market1 o search con search1, en ambos lugares, mi actividad consigue lanzado.
¿Hay una noción de intenciones "intocables" o algo así?

TIA.

Respuesta

8

Eso es extraño, y va un poco contra todo el sistema abierto. Sé que hay transmisiones que solo el sistema puede crear, pero no había oído hablar de tal cosa para la resolución de intentos.

De todos modos, acabo de arrojar el Market APK en mi HTC Hero y comprobé el manifiesto. Están siendo ligeramente más específicos en su URI de coincidencia mediante la adición de la ruta:

<intent-filter android:priority="100"> 
    <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="market.android.com" android:path="/search" /> 
    <data android:scheme="market" 
      android:host="search" android:path="" /> 
</intent-filter> 

Sin embargo, he intentado añadir esto a mi aplicación, salvo he aumentado el valor de prioridad (not that I've seen that have any effect before), y aún así no pude captura el Intent.

Esperemos que alguien (o los PSE) pueden arrojar alguna luz sobre la situación ...

+13

Al establecer la prioridad de esta manera, no hay ninguna aplicación de terceros puede interceptar el intento. Solo las aplicaciones instaladas en la partición del sistema pueden tener una prioridad> 0. – hackbod

+1

¡Ah, ja! Muchas gracias por la información. –

+2

@hackbod estaría bien si eso pudiera agregarse a los documentos http://developer.android.com/guide/topics/manifest/intent-filter-element.html#priority –

Cuestiones relacionadas