1

ユーザーが別のダイヤラーをインストールしている場合 (つまり、電話に複数のダイヤラーがインストールされている場合)、暗黙のインテントによってそれらのいずれかを選択するよう求められます。

私の問題は、コード内でデフォルトのダイヤラーに明示的な意図を設定したいということです。これは、この選択を表示したくないが、すべてのアクションが組み込み/デフォルトのダイヤラーに転送されることを望んでいるからです。

これは私の現在の(暗黙の)インテントコードです:

Log.i(TAG, "Sending: "+Number); 
Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ Number));

//called from outside of an android.app.Activity Context
dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialIntent);

明示的なインテントを強制するにはどうすればよいですか?

私はこれを試しました-しかし、私はここで間違った軌道に乗っていると思います...

dialIntent.setComponent((new ComponentName("com.android.internal.telephony","com.android.internal.telephony.ITelephony.class")));

どうもありがとう。

4

2 に答える 2

1

ハードコーディングされたURI(またはそれらが呼び出されたもの)で正しい軌道に乗っていると思いますが、控えめに言っても、それは脆弱なアプローチです。

あなたがやろうとしていることは、Android のオープンで柔軟な設計に反し、Intent システムの目的に反し、ユーザーにとってまったく敵対的です。1 つのアプリが不十分なデフォルトのダイヤラーを強制されたら、私は少しばかり腹を立てるでしょう ;)

組み込みのダイヤラを使用する必要があるのはなぜですか?

私のアドバイス: デフォルトのインテントを使用してください。組み込みのダイヤラを選択するようユーザーにアドバイスしますが、別のダイヤラーを使用することを選択したユーザーをサポートするようにしてください。

于 2012-07-12T04:31:49.630 に答える
0

デフォルトのダイヤラーを呼び出すのではなく、通話を処理するカスタム電話ダイヤラーのコンポーネントを呼び出す必要があります。プログラムでアクションのデフォルトのアクティビティを設定できないため

于 2012-07-12T09:25:45.160 に答える