0

ユーザーがボタンを押してアプリから番号をダイヤルして何かを購入できるようにする Android アプリを実装しています。シングル SIM デバイスでは問題なく動作しますが、デュアル SIM デバイスでは、アプリを実行して [購入ボタン] をクリックすると、ポップアップ ウィンドウが自動的に開き、どの SIM を使用してダイヤルするかを尋ねられます (入力する必要はありませんでした)。このアクションのコードを書く, それは私のデバイスによって自動的に行われます. また、通常、デバイスのデフォルトの電話アプリを使用して友人に電話をかけると、このポップアップウィンドウが自動的に開き、どのシムを使用してダイヤルするかを尋ねられます.通話開始) ですが、私のアプリの場合、SIM を選択した後、動作しません。ダイヤルが開始されません。しかし、それは単一のSIMデバイスでダイヤルを開始します.

正しく追加<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>したので、コードは単一の SIM デバイスでうまく動作します。

だから問題は何ですか?デュアル Sim デバイスで動作しないのはなぜですか?

私のコード:

Button button1maina = (Button) findViewById(R.id.Button03);

        button1maina.setOnClickListener(new OnClickListener() {
     @Override
         public void onClick(View v) {

         Intent callIntent = new Intent(Intent.ACTION_CALL);
         callIntent.setData(Uri.parse("tel:" + "*566%23"));;
         startActivity(callIntent);  

        }
     });
4

2 に答える 2

3

インテント アクティビティを開始するには、simcard を指定する必要があります。まず、このリンクで電話がデュアル Sim であるかどうかを確認します: https://stackoverflow.com/a/17499889/3743245

その後、ユーザーにどの simcard を使用するかを尋ね、その情報を次のように渡します。

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

また

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

うまくいかない場合は、これを試してください:

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

また

intent.putExtra("simSlot", 1); //For sim 2
于 2015-09-16T17:41:22.523 に答える