当手机使用双SIM卡适配器时,是否有人有编程选择SIM卡的经验?
谢谢, 斯登
稍后添加: 我在Android Market上找到了MultiSim应用程序,该应用程序在其描述中写道“ ...模拟双SIM卡适配器用户可以切换他们的SIM卡...... ”,那么Android SDK中是否有一些API,允许SIM卡切换/选择?
答案 0 :(得分:25)
目前的Android平台不支持多个SIM卡。已经为此定制了具有此类支持的设备,因此您需要从该设备的制造商处获取他们必须与之交互的任何设施的信息。
答案 1 :(得分:5)
由于没人提及,Android最终在Android 5.1上添加了official multisim support。
但是,除非您的应用仅针对该API(目前市场规模不到0.5%),否则您可以使用其他答案中提到的更为模糊的解决方案。
答案 2 :(得分:0)
请参阅此Dual Sim Android文章。如果你按照这个方向,我认为你可以做到,即使当前的android api不支持双卡移动设备。
答案 3 :(得分:0)
对于短信:
假设您正在为自己的手机开发应用程序,并且您愿意找到分配给每张SIM卡的ID(sim_id
)(可能是通过查看手机的日志)输出,搜索sim_id
,这就是我所做的),您可以使用以下代码设置短信发送的默认SIM卡:
int simId = <place desired SIM ID here>;
Intent simIntent = new Intent("android.intent.action.SMS_DEFAULT_SIM");
simIntent.putExtra("simid", simId);
sendBroadcast(simIntent);
结合其他一些UI提示功能(实际上“选择”首选SIM卡),这应该可以解决问题。
我不确定这种方法是否对您有用(尽管代码看起来与制造商无关);我在我的Mlais MX28(带有自定义ROM)上试用了它。但我认为它仍然值得一试。 :)
<强>更新强>
奇怪的是,在我正在处理的应用程序的一些更新后,解决方案意外停止工作。但我遇到了另一种方式(似乎更有希望)。 (我相信这也可以扩展到其他SIM选择方案,因为设置缓存包含name
s gprs_connection_sim_setting
,voice_call_sim_setting
,video_call_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
权限。)