asistente - google assistant ios
¿Se puede invocar a Siri mediante programación dentro de mi aplicación usando API privadas? (2)
La respuesta depende un poco de si esto es para una aplicación que simplemente no va a la App Store (aplicación empresarial o aplicación personal / hobby), o si realmente se ejecutará en teléfonos con jailbreak .
Si puedes confiar en un teléfono con jailbreak y utilidades de jailbreak como MobileSubstrate, entonces creo que puedes implementar un método para abrir Siri como lo hace el libActivator de Ryan Petrich , como muestro en esta otra respuesta .
Sin embargo, si está compilando para teléfonos normales y enjaulados , todavía creo que puede "piratearlo" (con API privadas), simulando la forma en que el usuario abre Siri. Primero, presione el botón Inicio, manténgalo presionado un poco y luego suéltelo.
Este código funciona para mí (iOS 6.1):
#import "GSEvent.h"
y
- (void)launchSiri {
[self simulateTouchEvent: kGSEventMenuButtonDown];
double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self simulateTouchEvent: kGSEventMenuButtonUp];
});
}
- (void)simulateTouchEvent: (GSEventType)type
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = type;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
}
Esto se basa en tener el encabezado GSEvent.h, que no forma parte del conjunto público de encabezados. Creo que tengo el mío aquí, así como GSWindow.h que se detiene . Obviamente, entonces deberías descargar estos dos encabezados y agregarlos a tu proyecto.
Este código se encuentra en el marco privado de GraphicsServices , por lo que también deberá agregar ese marco a su proyecto. Hágalo como agregar un marco normal, pero necesita buscar en un lugar como
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework
para encontrarlo (ruta ajustada para su directorio de instalación de Xcode y SDK).
Descargo de responsabilidad: probé esto en un teléfono con jailbreak, pero definitivamente estaba dentro de una aplicación normal, instalada en el área /var/mobile/Applications/
sandbox, y estoy 99% seguro de que no he hecho nada que dependa de ser jailbreak
En lugar de hacer que el usuario mantenga presionado el botón de inicio, me gustaría iniciar Siri mediante programación dentro de mi aplicación. Como no hay API públicas disponibles para lograr esto, me gustaría saber si alguien ha podido lanzar Siri mediante programación a través de la API privada y, de ser así, ¿qué API privada utilizó?
No estoy interesado en los valores de retorno de Siri. Todo lo que quiero hacer es lanzarlo.
No No hay acceso a Siri. Estoy bastante seguro de que si obtiene acceso, de alguna manera, Apple rechazará su aplicación. (pero puedo pensar en muchos más que estarán agradecidos)
Sin embargo, existe esto: http://ps3trophies.com/forums/apple/6458-siri-cracked-now-even-android-users-can-use-siri.html
Vea esta respuesta también: https://.com/a/12607905/2535467