2011-03-10 30 views
21

¿Alguien ha tenido experiencia en la programación de la selección de la tarjeta SIM cuando el teléfono usa un adaptador dual SIM?Tarjeta SIM Dual Android

Gracias, Sten


añadió más tarde: he encontrado la aplicación MultiSim en el Android Market, que tiene en su descripción por escrito que "... analógico dual-sim-adaptador los usuarios pueden cambiar sus tarjetas SIM ... ", ¿hay alguna API en el SDK de Android que permita cambiar/seleccionar la tarjeta SIM?

+0

Puede utilizar la reflexión de Java para obtener múltiples detalles de la tarjeta SIM. [Aquí hay una muestra de cómo hacerlo] (http://stackoverflow.com/a/17499889/703851) –

+0

Puede intentar usar la biblioteca 'MultiSim': http://stackoverflow.com/a/41544422/1665964 –

Respuesta

25

La plataforma Android actual no tiene soporte para múltiples SIM. Un dispositivo con dicho soporte se ha personalizado para eso, por lo que deberá obtener información del fabricante del dispositivo para cualquier instalación con la que tenga que interactuar.

+0

Hola, ¿estás seguro?Cómo funciona la aplicación * MultiSim * y los productos como * Hypercard 3G * (http://www2-phones-in-1.com/content/hypercard-3g-digital-dualsim-3g-use-2-simcards -any-mobile-phone-online-simswitch-and-full-gs) están funcionando? Si revisa la URL * Hypercard 3G *, verá que el paquete dual SIM viene con la aplicación de Android y Symbian que permite cambiar las tarjetas SIM ... Gracias por la respuesta. – STeN

+21

@STeN: "Hola, ¿estás seguro?" - @hackbod es un empleado de Google y un miembro central del equipo de Android. "¿Cómo funcionan la aplicación MultiSim y los productos como Hypercard 3G (2-phones-in-1.com/content/...)?" - Dudo que @hackbod sea el autor de ninguna de esas aplicaciones y, por lo tanto, no puede realmente comentar sobre esas aplicaciones. Esos desarrolladores de aplicaciones supuestamente siguieron la sugerencia de @ hackbod de contactar a los fabricantes de dispositivos. "Entonces, ¿hay alguna API en el SDK de Android que permita cambiar/seleccionar la tarjeta SIM?" -- no. – CommonsWare

+1

Intente usar getDeviceId (int slotId) agregado en API nivel 23. – Ameer

0

Por favor, consulte este artículo Dual Sim Android. Si sigues esta dirección, creo que puedes hacerlo, incluso si la API actual de Android no es compatible con dispositivos móviles con doble tarjeta SIM.

0

Por SMS:

Suponiendo que está desarrollando la aplicación para su propio teléfono, y que está dispuesto a pasar por la molestia de averiguar los ID (sim_id) asignados a cada una de sus tarjetas SIM (probablemente a través de la comprobación salidas de registro del teléfono, la búsqueda de sim_id, que fue lo que hice), puede utilizar el siguiente código para establecer el valor por defecto SIM para el envío de SMS:

int simId = <place desired SIM ID here>; 
Intent simIntent = new Intent("android.intent.action.SMS_DEFAULT_SIM"); 
simIntent.putExtra("simid", simId); 
sendBroadcast(simIntent); 

en combinación con algunas otras cosas pronta interfaz de usuario (por en realidad 'escoger' la SIM preferida), esto es Haría el truco.

No estoy del todo seguro de si este enfoque funcionaría para usted (aunque el código parece ser independiente del fabricante); Lo descubrí con prueba y error en mi Mlais MX28 (con una ROM personalizada). Pero aún así vale la pena intentarlo, supongo. :)

ACTUALIZACIÓN: Curiosamente, la solución dejó de funcionar de forma inesperada después de algunos cambios a la aplicación que estaba trabajando. Pero me encontré con otra forma (que parece ser más prometedora). (Creo que esto se puede extender a otros escenarios de selección SIM, así como la configuración de caché contiene entradas con name s gprs_connection_sim_setting, voice_call_sim_setting, video_call_sim_setting y similares.)

ContentValues val = new ContentValues(); 
val.put("value", "here goes the preferred SIM ID"); 
getContentResolver().update(Uri.parse("content://settings/system"), val, "name='sms_sim_setting'", null); 

(Por desgracia, esto requiere el permiso android.permission.WRITE_SETTINGS.)

5

Como nadie lo mencionó aún, Android finalmente ha agregado official multisim support en Android 5.1.

Pero a menos que su aplicación solo esté orientada a esa API (que actualmente es menos del 0.5% del mercado) usted está solo con las soluciones más oscuras mencionadas en las otras respuestas.

Cuestiones relacionadas