Call from second sim
This seems to work on a large range of dual sim devices as Motorola, Micromax, HTC, Samsung
intent.putExtra("com.android.phone.extra.slot", 0); //For sim 1
OR
intent.putExtra("com.android.phone.extra.slot", 1); //For sim 2
and if doesn't work try this, In Samsung S duos this works just fine.
intent.putExtra("simSlot", 0); //For sim 1
OR
intent.putExtra("simSlot", 1); //For sim 2
unfortunately for these things we have to get into hit/trial mode as no official documentation is there for dual-sim support.
Making a call from a dual sim android device using adb
SIM Card is just a container. The name of the entity being used by the phone to register with the network and to make calls is SubscriberID. A single SIM Card may contain multiple SubscriberIDs.
So instead of asking how to make a call from another SIM Card you should be asking how to make a call using SubscriberID other than the default one - whether this other SubscriberID is stored on the same or another SIM Card is mostly irrelevant.
I do not know if there is a way to specify a different SubscriberID for a single call. But you should be fine with setting a new default SubscriberID before the call and then reverting it back afterwards.
To find out the current ID value run:
adb shell settings get global multi_sim_voice_call
Then change the active Subscriber via UI and run the command again to get another ID.
Use this command to switch to the appropriate ID before calling:
adb shell settings put global multi_sim_voice_call <ID>
To change data
call settings - use multi_sim_data_call
instead of multi_sim_voice_call
.
Detecting target SimCard of incoming call in Multi-Sim devices
Officially, the only documented value provided by the intent is the phone number.
Some constructors add other values like sim slot number in the intent, but this is not mandatory. This is why there are so many slot keys names possible, like those presented in post 3, each constructor adding his own implementation.
It's also possible some constructor didn't add this value in some models, and that's certainly the case on your model. There is no way of finding this value if the constructor don't deliver it.
Related Topics
Listview in Arrayadapter Order Get's Mixed Up When Scrolling
Android Keyboard Hides Edittext
Disabling Android O Auto-Fill Service for an Application
Get Listview Item Position on Button Click
Work Around Canvas.Clippath() That Is Not Supported in Android Any More
How to Store SQLite Database Directly on Sdcard
Android Exception: Did You Forget to Call 'Public Void Setup (Localactivitymanager Activitygroup)'
Error:Cause: Unable to Find Valid Certification Path to Requested Target
How to Resolve Java.Util.Zip.Zipexception
Listfragment Onlistitemclick Not Being Called
Customize Check Box Preference
How to Align Title at Center of Actionbar in Default Theme(Theme.Holo.Light)
Android Mask Bitmap on Canvas Gen a Black Space
No Good Example About Recyclerview and Staggeredgridlayoutmanager in Android Docs
How to Set a Viewpager Inside a Fragment
Listen Outgoing Sms or Sent Box in Android
Change the Font of Tab Text in Android Design Support Tablayout