2011-06-13 9 views
12

Necesito encontrar si el dispositivo Android actual permite instalar aplicaciones de fuentes que no sean del mercado. Esta opción aparece en la interfaz de usuario de configuración en Aplicaciones denominadas "Fuentes desconocidas".Programatically encontrar si se permite la instalación desde fuentes desconocidas

La configuración, básicamente, le permite descargar e instalar APK que no se originaron en el mercado de aplicaciones de Google.

¿Cómo puedo verificar si esta marca está activada o desactivada con el código?

Respuesta

10

Esta configuración se denomina "INSTALL_NON_MARKET_APP" (click for documentation).

(que básicamente ya se ha escrito la pregunta cuando encontré la respuesta escondida en lo profundo de la documentación, con un nombre diferente, por lo que decidí publicar la pregunta y la auto respuesta, ya que es . no es trivial)

21

Aquí está el código que utiliza la configuración mencionada:

boolean isNonPlayAppAllowed = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS) == 1; 

también muestra la configuración de usuario podría yo útil:

if (!isNonPlayAppAllowed) { 
    startActivity(new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS)); 
} 
+0

¿Dónde agregar este código en una aplicación? En la actividad principal o en cualquier otro lugar? – NetStarter

+0

La pregunta fue encontrar el indicador de instalación "Fuentes desconocidas". La variable esNonPlayAppAllowed es esa bandera. Se define con todos los métodos estáticos, por lo que puede definirlo/usarlo en cualquier lugar de su código. Solo necesitas getContentResover(), lo que significa que solo necesitas contexto. – MSquare

Cuestiones relacionadas