Replanteando tu pregunta.
Tienes una aplicación móvil instalada en un teléfono de un cliente que no es de confianza.
La aplicación móvil tiene que recuperar / enviar datos a su servicio web; Sin embargo, si desea restringir el acceso a su servicio web a aplicaciones móviles, no a usuarios aleatorios (puede que esté usando un dispositivo de escritorio, publíquelo en la web).
Su solución actual es codificar una clave secreta dentro de la aplicación, que se pasa al servicio web con cada solicitud; solo se procesan las solicitudes con la clave secreta correcta.
La solución perfecta no es viable
Primero, tu objetivo no es factible contra los atacantes sofisticados. Podrán descompilar el código de bytes de tu aplicación de Android, ver qué está haciendo tu aplicación y luego hacer lo que hace tu aplicación sin conexión.
Sin embargo, es posible que pueda utilizar la funcionalidad licencia de aplicaciones de Android para hacer casi todo lo que usted quiere.
Básicamente, puede generar una ID única para su aplicación cuando se instala por primera vez. Luego, su aplicación envía una consulta al "Market License Server" de Google Play que comprueba que el usuario compró la aplicación para este dispositivo y devuelve el estado de la licencia (firmado criptográficamente con el certificado de Google). Su aplicación devuelve este estado de licencia firmado a su servidor, que lo verifica y genera una clave secreta (vinculada a la ID única) para ese dispositivo.
Ahora, si alguna aplicación usa su servicio web con demasiada frecuencia (por ejemplo, cree que está fuera de línea), puede prohibir su clave secreta única.