9 votos

Hacer aplicaciones para el iPhone que tiene permiso para realizar llamadas sin necesidad de interacción del usuario?

Estaba leyendo acerca de una llamada perdida estafa justo ahora cuando el usuario se carga incluso si ellos no llamar de vuelta. Se me ocurrió que una mala aplicación de iPhone podría hacer llamadas a números de tarificación especial para estafar a los usuarios de dinero - de hecho, parece que esto ha sucedido en el pasado.

Según la propia Apple documentación:

Cuando un usuario pulsa un teléfono de enlace en una página web, iOS muestra un mensaje de alerta preguntando si el usuario realmente quiere marcar el número de teléfono y se inicia la marcación si el usuario acepta. Cuando un usuario abre una URL con el régimen de tel en una aplicación nativa en iOS, no muestra una alerta y se inicia la marcación sin más preguntar al usuario.

A mí me parece que aparentemente benignos de la aplicación de iPhone podría, dicen, espere hasta que el teléfono se quedó en el cargo (y, por tanto, es probable que no está siendo atendido por el usuario) y, a continuación, iniciar una llamada a un número de tarificación adicional a la red el desarrollador de un ordenado el bono. No parece ser ningún tipo de permiso en iOS que puedo cambiar para evitar este comportamiento, ya que esta es abrir la aplicación de teléfono con una dirección URL en lugar de acceder a cualquiera de los datos del teléfono.

¿Alguien puede confirmar si mi interpretación es correcta y, si es así, ¿por qué en la tierra de Apple no han cerrado un agujero?

10voto

tomacco Puntos 71

He comprobado experimentalmente que el iOS comportamiento tratando de iniciar una llamada de teléfono de una de mis aplicaciones.

Aquí están los resultados:

  • Es posible a través de programación iniciar una llamada de teléfono sin confirmación del usuario. Acabo de escribir una sola línea de código que se ejecuta justo después de la Aplicación se ha cargado. Lo que significa que si tu Aplicación está en primer plano se puede iniciar una llamada en cualquier momento, incluso sin necesidad de usuario, toque en cualquier lugar.
  • He enviado un silencio remoto de notificación de inserción a la Aplicación con el fin de despertar es una aplicación si no se está ejecutando y, a continuación, ejecutar el mismo código. No hay ninguna llamada se inició; iOS no permite una aplicación para iniciar una llamada de teléfono si la aplicación se está ejecutando en segundo plano.

Así que respondiendo a tu pregunta, la única manera de iniciar una llamada de teléfono sin que el usuario se de cuenta, es por que de alguna manera convencer al usuario salir de la aplicación maliciosa que se ejecuta en primer plano y, a continuación, iniciar la llamada de teléfono, como iOS no permite esta operación si la aplicación está en segundo plano.

Actualmente iOS no proporciona ningún mecanismo para bloquear el inicio de llamadas de teléfono desde una aplicación en particular, pero ello sólo puede ocurrir si la aplicación está en segundo plano.

5voto

hjdm Puntos 18

He hecho una aplicación de prueba para comprobar esto. Aplicación puede abrir URL como por ejemplo tel://123456789 sólo cuando está en primer plano y activo. Cuando yo llamo a este código, incluso justo después de entrar en el fondo del estado, la API para abrir esta URL no hizo nada. Para responder a su pregunta - apps no ser capaz de hacer una llamada sin su conocimiento.

Para probar esta pasta este en su AppDelegate:

- (void)applicationDidEnterBackground:(UIApplication *)application {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X