Elimina la necesidad de un automóvil "compatible con CarPlay™" y ejecuta la interfaz de usuario de CarPlay directamente en la parte superior del SpringBoard en un dispositivo iOS.
¡Funciona muy bien para iPads montados en el tablero!
Nota : Esto está destinado principalmente a un iPad, y los iPhone no son realmente compatibles (sin embargo, "puedes" usarlo con un iPhone 6 Plus si realmente lo deseas).
Además, me aseguraré de hacer un informe formal sobre cómo funciona todo una vez que todo esto esté terminado y sea utilizable.
Vroom vroom.
Para ser honesto, muchas de estas tonterías podrían evitarse por completo si se pudiera crear y luego usar un FBSDisplay "falso" secundario. De esa manera, SBApplications podría crear/poseer escenas de automóviles adecuadas y habría muchas menos cosas rotas...
La mayor parte de la lógica de verificación de CarPlay implica verificar múltiples UIScreens, la interfaz UIScreenIdiom y FBSDisplay -> búsquedas de FBScene. Sin embargo, crear un FBSDisplay falso requiere crear un CADisplay falso, lo cual no es muy divertido :P
Básicamente, así es como funciona (creo... algunas partes probablemente estén mal o no funcionen):
FrontBoard asocia un FBSDisplay como pantalla principal y tiene un montón de FBScenes que son el escenario principal de cada aplicación SBA. Una vez que haya una segunda FBSDisplay disponible, podrá generar una carScene para cada aplicación SBA que se considere capaz. Estas carScenes luego se presentarían en cualquier pantalla conectada externamente (FBSDisplay secundaria).
Originalmente, había intentado secuestrar un FBSDisplay cada vez que se creaba y simplemente duplicar esa pantalla en un objeto FBSDisplay secundario con el mismo objeto CADisplay... y luego empujar ese objeto FBSDisplay en su propia tabla de búsqueda para que pareciera como si fuera múltiple. Las pantallas estaban disponibles. Sin embargo. Esto hace que UIScreen se asuste ya que considera que ambas pantallas son iguales. Además, a muchos sistemas operativos no les gustó esto: P
Lo que estoy haciendo es simplemente hacer que todas las pantallas UIS aparezcan como pantallas CarPlay y forzar que todas las aplicaciones se representen en formato horizontal (ya que CarPlay en pantallas externas se ve obligado a visualizarse en formato vertical). Además, esto significa que el carScene de cada aplicación SBA es el mainScene, lo que no garantiza el éxito.
Crear un servidor AirPlay local y luego piratear los toques para trabajar en una vista (cuyo contenido es una pantalla secundaria proyectada localmente, usando el dispositivo para AirPlay + mirroring) podría ser una buena solución para esto, pero aún no lo he probado. Eso nos daría un segundo FBSDisplay legítimo para jugar.
Usé Theos para esto. Deberá instalarlos y configurar las variables de entorno adecuadas, etc., además de configurarlos. Información sobre eso aquí.
La compatibilidad con ARM64 está habilitada de forma predeterminada y si necesita ayuda para configurarla, consulte aquí.
Estoy usando mi propia bifurcación de theos, que a su vez está bifurcada de la bifurcación de @rpetrich.
Si edita el Makefile, puede especificar la IP de su dispositivo iOS y demás para compilarlo y ejecutarlo usando make package install
. De lo contrario, puede simplemente make package
para generar un archivo .deb e instalarlo por cualquier medio.
¡Totalmente gratis! Si desea apoyar mi continuación de este proyecto (¡y otros!), ¡no dude en donar! Se lo agradecería mucho :D
Prácticamente la licencia BSD, ¡pero no la vuelvas a empaquetar y llámala tuya, por favor!
Además, si realiza algunos cambios, no dude en realizar una solicitud de extracción y ayudar a que las cosas sean más increíbles.
¡No dudes en seguirme en Twitter: @b3ll!
Aunque realmente no me gusta manejar solicitudes de soporte allí...
¡Travis Beckham por la imagen vectorizada del coche!