web-dev-qa-db-ja.com

2番目のシムからの呼び出し

私はデュアル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電話を処理する方法はありますか?

19
Seshu Vinay

これは、Motorola、Micromax、HTC、SamsungなどのさまざまなデュアルSIMデバイスで機能するようです

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

OR

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

うまくいかない場合は、これを試してください。SamsungSデュオでは、これは問題なく機能します。

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

OR

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

残念ながら、デュアルSIMをサポートするための公式ドキュメントがないため、これらのことについてはヒット/トライアルモードに入る必要があります。

30
user1411614
    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のAsusFonepad7で作業Android 5.0

Androidは、デュアルSIMデバイスをサポートするためのAPIを提供していません。 AndroidのSIMカード関連APIはデフォルトのSIMカード(通常はSIM#1)のみをサポートします。AndroidでデュアルSIMをサポートするのはハードウェア実装であるため、デバイスメーカーは独自のAPIを実装するか、ハードウェアコンポーネントをサポートするためのソースコード。SDKをサポートするデュアルSIMについては、デバイスの製造元にお問い合わせください。

1
Kishore