2011-06-23 8 views
9

Tengo una aplicación de Android en la que defino varias actividades diferentes en el manifiesto. Algunas de estas actividades tienen filtros de intención que utilizo (como ACTION_PICK). Estas actividades, debido a los filtros de intención, aparecen cuando otras aplicaciones solicitan una actividad para manejar un ACTION_PICK. ¿Hay alguna manera de evitar esto, para que mis actividades no sean accesibles para otras aplicaciones? Ya he intentado configurar android: exported = "false" en mi actividad, pero eso no hizo nada.Cómo impido que otras aplicaciones de Android accedan a mis actividades

+0

Uy, acaba de encontrar la respuesta aquí: http://stackoverflow.com/questions/1571615/preventing-apps-from-invoking-my-activity/1571632#1571632 ¿Hay alguna manera de eliminar ¿esta pregunta? – Dominic

+0

He votado para cerrar su pregunta como un duplicado a la que muestra como la respuesta. Sin embargo, se necesitarán 3 votos más para cerrarlo. – Squonk

+1

En realidad, la respuesta que mah posted es mucho más conciso, así que tal vez deberíamos mantener esto abierto. – Dominic

Respuesta

13

es necesario:
* definir un permiso (que sólo está disponible para las aplicaciones que tienen su firma)
* definir que la aplicación utiliza su permiso definido
* exigir que el permiso para que las actividades que desea proteger. (Tenga cuidado de no requerirlo para su actividad principal de lanzamiento).

<!-- define a permission --> 
<permission 
    android:protectionLevel="signature" 
    android:name="com.mypackage.MYPERMISSION"/> 

<uses-permission android:name="com.mypackage.MYPERMISSION" /> 

<!-- define an activity which can only be started through internal code --> 
<activity android:name="..." 
      android:permission="com.mypackage.MYPERMISSION" > 
    ... 
</activity> 
+0

Solo para completar, las etiquetas de permisos y permisos de uso van dentro de la etiqueta de manifiesto, pero fuera de la etiqueta de la aplicación, y las etiquetas de actividad van dentro de la etiqueta de la aplicación. ¿Es eso correcto? – Dominic

+1

@Dominic - sí, así es como se ven mis manifiestos. Quizás otras posiciones también pueden funcionar pero no las he probado. – mah

+0

Esto debe aceptarse como la respuesta correcta. – cgogolin

Cuestiones relacionadas