从第二个SIM卡打电话

我有一个双卡android手机。 我正在使用此代码进行呼叫:

private void callBack(String phone, Context context) { Intent callIntent = new Intent(Intent.ACTION_CALL) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); callIntent.setData(Uri.parse("tel:" + phone)); context.startActivity(callIntent); } 

这工作正常。 但它总是从sim1打电话(最好是sim)。 我如何从Sim2拨打电话? 有没有办法处理双SIM卡手机?

这似乎适用于摩托罗拉,Micromax,HTC,三星等大型双卡双待设备

 intent.putExtra("com.android.phone.extra.slot", 0); //For sim 1 

要么

 intent.putExtra("com.android.phone.extra.slot", 1); //For sim 2 

如果不工作尝试这个,在三星S二重奏这工作得很好。

 intent.putExtra("simSlot", 0); //For sim 1 

要么

 intent.putExtra("simSlot", 1); //For sim 2 

不幸的是,对于这些事情,我们必须进入命中/试用模式,因为没有官方文件是双SIM支持。

  final Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumberOrUssd)); final int simSlotIndex = 1; //Second sim slot try { final Method getSubIdMethod = SubscriptionManager.class.getDeclaredMethod("getSubId", int.class); getSubIdMethod.setAccessible(true); final long subIdForSlot = ((long[]) getSubIdMethod.invoke(SubscriptionManager.class, simSlotIndex))[0]; final ComponentName componentName = new ComponentName("com.android.phone", "com.android.services.telephony.TelephonyConnectionService"); final PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle(componentName, String.valueOf(subIdForSlot)); intent.putExtra("android.telecom.extra.PHONE_ACCOUNT_HANDLE", phoneAccountHandle); } catch (Exception e) { e.printStackTrace(); } intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); 

工作在双SIM卡华硕Fonepad 7 Android 5.0

Android不提供API来支持双SIM卡设备。 Android的SIM卡相关API仅支持默认SIM卡(通常为SIM#1)。 在Android上支持双卡的硬件实现,因此设备制造商必须实现自己的API或定制源代码来支持他们的硬件组件。 您可以联系设备制造商获取支持双卡的SDK。