Dual Sim Android

¿Hay una manera que puedo tener acceso al otro sim en mi androide? Tengo una órbita móvil de la cereza del androide que es un teléfono androide dual del sim. Quiero desarrollar una aplicación de SMS para mi teléfono, pero sólo el 1er sim será el acceso. Quiero tener acceso al otro sim, de modo que cuando presiono entran para enviar el mensaje, habrá un aviso, ese qué sim el mensaje será enviado. Sé que es properitary, pero el fabricante del teléfono no tiene ninguna regeneración sobre él. ¿Hay alguna otra manera? Ajustes o algo?

Creo que se puede usar dex2jar o apktool para invertir la aplicación que se ejecuta en los dispositivos de doble tarjeta SIM, una vez que se encontró el relacionado "administrador de servicios", "administrador de telefonía", algún stub interfaz, o algunas palabras clave como "Géminis" Utilizar Java Reflection, refleja todo el método de esta clase. Entonces usted puede alcanzar esta meta.

Oficialmente ahora no hay API para apoyar esto, usted tiene que ponerse en contacto con el fabricante del dispositivo.

Suponiendo que está desarrollando la aplicación para su propio teléfono, y está dispuesto a pasar por el problema de encontrar los identificadores ( sim_id ) asignados a cada una de sus tarjetas SIM (probablemente a través de comprobar las salidas del registro del teléfono, la búsqueda de sim_id , que Fue lo que hice), puede utilizar el código siguiente para establecer la tarjeta SIM predeterminada para enviar SMS:

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

Combinado con algunas otras cosas de la interfaz de usuario (para realmente "recoger" la SIM preferida), esto debería hacer el truco.

No estoy seguro de si este enfoque funcionaría para usted (aunque el código parece bastante 'estándar'); Lo calculé con ensayo y error en mi Mlais MX28 (con una ROM personalizada). Pero todavía vale la pena una inyección, supongo. 🙂

ACTUALIZACIÓN: Curiosamente, la solución dejó de funcionar inesperadamente después de algunas actualizaciones de la aplicación en la que estaba trabajando. Pero me encontré con otro camino (que parece ser más prometedor). (Creo que esto puede extenderse para otros escenarios de selección de SIM también, ya que la caché de configuración contiene entradas con el 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); 

(Desafortunadamente, esto requiere el permiso android.permission.WRITE_SETTINGS .)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.