双SIM卡Android

有没有人有编程select的SIM卡,当手机使用双SIM卡适配器的经验?

谢谢,STeN


后来又添加了一些:我在Android Market上find了MultiSim应用程序,在它的描述中写着“ …模拟双卡适配器用户可以切换他们的SIM卡… ”,那么Android中是否有一些API SDK,它允许SIM卡切换/select?

目前的Android平台不支持多张SIM卡。 具有此类支持的设备已针对此进行了定制,因此您需要从该设备的制造商那里获取与其交互的任何设施的信息。

由于没有人提到它,Android终于在Android 5.1上增加了官方的multisim支持 。

但是除非你的应用程序只针对那个API(目前不到0.5%的市场),否则你自己会用其他答案中提到的更晦涩的解决scheme。

请参阅这个双SIM Android文章。 如果你遵循这个方向,我认为你可以做到,即使目前的Android API不支持双SIM卡移动设备。

对于SMS:

假设您正在为自己的手机开发应用程序,并且您愿意sim_id来查找分配给每个SIM卡的ID( sim_id )(可能是通过检查手机的日志输出,searchsim_id ,是我所做的),您可以使用以下代码来设置SMS发送的默认SIM卡:

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

结合一些其他的用户界面提示的东西(实际上是“挑选”首选的SIM),这应该做的伎俩。

我不确定这种方法是否适用于您(尽pipe代码似乎与制造商无关); 我通过在我的Mlais MX28上进行反复试验(用定制的ROM)计算出来。 不过,我想这还是值得的。 🙂

更新:奇怪的是,解决scheme停止工作后,我正在处理的应用程序的几个更新意外。 但我遇到了另一种方式(这似乎更有希望)。 (我相信这也可以扩展到其他SIMselectscheme,因为设置caching包含name gprs_connection_sim_settingvoice_call_sim_settinggprs_connection_sim_setting条目。)

 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); 

(不幸的是,这需要android.permission.WRITE_SETTINGS权限。)