前言
现在的安卓机一般都支持双卡,一般都是使用两个运营商的号。我曾经遇到过这样一个需求,就是一个自动拨打电话的功能,判断手机号属于哪个运营商,就是对应的卡去拨打电话。那么问题来了,由于Google没有对应的API,拨号的时候只能使用默认的卡,网上搜寻一番还是找到了解决办法。
代码
首先定义一个常量
public static final String[] DUAL_SIM_TYPES = {"subscription",
"Subscription",
"com.android.phone.extra.slot",
"phone",
"com.android.phone.DialingMode",
"simId",
"simnum",
"phone_type",
"simSlot"};
拨号权限和其他权限的处理不多说,下面是拨号的逻辑
/**
* 拨打电话(拨号权限自行处理)
* @param phoneNum :目标手机号
* @param simIndex :sim卡的位置 0代表sim卡1,1代表sim卡2
*/
private void callPhone(String phoneNum,int simIndex) {
Intent callIntent = new Intent(Intent.ACTION_CALL).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callIntent.setData(Uri.parse(phoneNum));
for (String dualSimType : DUAL_SIM_TYPES) {
callIntent.putExtra(dualSimType, simIndex);
}
this.startActivity(callIntent);
}
这样就应该可以了,拿去测试吧...