2014-08-27 10 views
15

मैं पिछले कुछ दिनों से इस के लिए खोज की है में एक निर्दिष्ट सिम का उपयोग कर कॉल और मुझे लगता है कि पता चला:।मेक एक दोहरी सिम डिवाइस

"दोहरी सिम एंड्रॉयड में समर्थित नहीं है बॉक्स से बाहर यह है निर्माताओं द्वारा एक कस्टम संशोधन, और इसे नियंत्रित करने के लिए कोई सार्वजनिक एपीआई नहीं है। "

नीचे दिए गए लिंक में एक समाधान प्रदान किया गया है लेकिन यह मेरे फोन सैमसंग गैलेक्सी एस 4 मिनी पर काम नहीं कर रहा है।

Call from second sim

मैं भी इस लिंक है, जो मैं बहुत जानकारीपूर्ण पाया पाया।

http://www.devlper.com/2010/06/using-android-telephonymanager/

अब मुझे पता है कि निम्नलिखित कोड का उपयोग कर, मैं यह काम कर रहा बनाने के लिए भाग्यशाली पाने के लिए एक मौका हो सकता है:

Intent callIntent = new Intent(Intent.ACTION_CALL) 
       .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     callIntent.setData(Uri.parse("tel:" + phone)); 
     context.startActivity(callIntent); 
callIntent.putExtra("com.android.phone.extra.slot", 0); //For sim 1 
and 
callIntent.putExtra("com.android.phone.extra.slot", 1); //For sim 2 

मैं इस बारे में निश्चित नहीं हूँ, लेकिन मैं एक सवाल है ।

  1. वर्तमान नेटवर्क
  2. हमेशा पूछें
  3. सिम 1
  4. :

    सिम कार्ड प्रबंधक खंड के अंतर्गत सेटिंग्स में, जब मैंने ध्वनि कॉल के लिए एक पसंदीदा सिम कार्ड का चयन करने के लिए है, मैं चार विकल्प मिल

  5. सिम 2

जब मैं हमेशा विकल्प पूछो तो एक फोन मैं हमेशा एक सिम कार्ड को चुनने के लिए कहा रहा हूँ करने से पहले चुनते हैं, कॉल करने के लिए, एक संवाद बॉक्स में प्रदर्शित किया गया। मेरा सवाल है कि क्या मैं इस ऐप में अपनी चीज का फायदा उठा सकता हूं जहां मैं कॉल करने के लिए एक बटन दबाता हूं लेकिन यह हमेशा मुझसे पूछता है जब मैं हमेशा से पूछता हूं विकल्प चुनता हूं।

मुझे खेद है, मैंने यह सवाल लंबा बना दिया है, लेकिन मुझे लगता है कि इसे इसकी आवश्यकता है। कृपया अग्रिम में मदद करें और बड़े धन्यवाद।

संपादित करें:

मैं कैसे इस लक्ष्य को हासिल कर सकते हैं, हर मैं किसी भी बटन (समान का प्रकार सेटिंग्स में हमेशा विकल्प से पूछो करने के लिए) दबाएँ: Select SIM Dialog Box

+1

क्या आपको इस समस्या का कोई समाधान मिला? –

+0

@ गौरववचना क्षमा करें भाई, इस समस्या के लिए सार्वभौमिक समाधान नहीं मिलेगा। अभी के लिए, यह स्पष्ट है कि कोई भी संकेत है। –

+0

मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जिसके लिए समान कार्यक्षमता की आवश्यकता है .. क्या आपको इसके लिए कोई समाधान मिला? –

उत्तर

7

कोड:

private final static String simSlotName[] = { 
     "extra_asus_dial_use_dualsim", 
     "com.android.phone.extra.slot", 
     "slot", 
     "simslot", 
     "sim_slot", 
     "subscription", 
     "Subscription", 
     "phone", 
     "com.android.phone.DialingMode", 
     "simSlot", 
     "slot_id", 
     "simId", 
     "simnum", 
     "phone_type", 
     "slotId", 
     "slotIdx" 
}; 


Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "any number")); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.putExtra("com.android.phone.force.slot", true); 
    intent.putExtra("Cdma_Supp", true); 
    //Add all slots here, according to device.. (different device require different key so put all together) 
    for (String s : simSlotName) 
     intent.putExtra(s, 0); //0 or 1 according to sim....... 

    //works only for API >= 21 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     intent.putExtra("android.telecom.extra.PHONE_ACCOUNT_HANDLE", (Parcelable) " here You have to get phone account handle list by using telecom manger for both sims:- using this method getCallCapablePhoneAccounts()"); 

    context.startActivity(intent); 
+0

मेरे पास एक जियो लाइफ विंड 2 मोबाइल है, मुझे लगता है कि मुझे इस सूची में एक नया नाम मिल गया है .. क्या आप बता सकते हैं कि आपको यह सूची कैसे मिली है या यह कोड किसी भी कोड को सेट करके मॉडल से प्राप्त कर सकता है। –

2
TelecomManager telecomManager = (TelecomManager) this.getSystemService(Context.TELECOM_SERVICE); 
List<PhoneAccountHandle> phoneAccountHandleList = telecomManager.getCallCapablePhoneAccounts(); 


Intent intent = new Intent(Intent.ACTION_CALL).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent.setData(Uri.parse("tel:" + number)); 
     intent.putExtra("com.android.phone.force.slot", true); 
     intent.putExtra("Cdma_Supp", true); 
     if (simselected== 0) { //0 for sim1 
      for (String s : simSlotName) 
       intent.putExtra(s, 0); //0 or 1 according to sim....... 

      if (phoneAccountHandleList != null && phoneAccountHandleList.size() > 0) 
       intent.putExtra("android.telecom.extra.PHONE_ACCOUNT_HANDLE", phoneAccountHandleList.get(0)); 

     } else {  1 for sim2 
      for (String s : simSlotName) 
       intent.putExtra(s, 1); //0 or 1 according to sim....... 

      if (phoneAccountHandleList != null && phoneAccountHandleList.size() > 1) 
       intent.putExtra("android.telecom.extra.PHONE_ACCOUNT_HANDLE", phoneAccountHandleList.get(1)); 

     } 
     startActivity(intent); 
+0

मैं सिम 0 का चयन कैसे कर सकता हूं? –

+0

मैं सिम 1 के लिए कस्टम संवाद करता हूं। और सिम 2 और सिम का चयन करें –

संबंधित मुद्दे