2

次のコードを使用してプログラムから電話番号に電話をかけているとき

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:0705352951"));
startActivity(callIntent);

電話をかけるためにどのプログラムを使用するかという質問を受けます。私が欲しいのは、私のプログラムが電話でデフォルトのものだけを使用していることです。質問をスキップしてください。これを行う方法はありますか?

4

3 に答える 3

0

ここで行っているのは、CALL アクションに応答できるアプリを要求する暗黙のインテントを使用することです。複数見つかった場合、システムはユーザーに尋ねます。

このフェーズを回避するには、インテントを自分で解決し、明示的なインテントを使用する必要があります。

通常、次のようにします。

int flag = PackageManager.MATCH_DEFAULT_ONLY;
List<ResolveInfo> matches = getPackageManager().queryIntentActivities(intent, flag);

// This gets you a list. Typically you'll want the first item.
// However, from the doc, it is unclear if the first item is the best item or the chooser intent
ActivityInfo actualInfo = matches.get(0).activityInfo;

// Then you can create a ComponentName to make the intent explicit
intent.setComponentName(new ComponentName(actualInfo.packageName, actualInfo.name));

// and finally start your activity
startActivity(intent);
于 2013-04-26T09:17:17.803 に答える
0

ボタンをクリックして電話をかけると、デフォルトのアプリケーションを選択するポップアップが開くということですか? そのため、デフォルトのダイヤラ アイコンを 1 回クリックし、下の「まだこのアプリケーションを使用しています」などをクリックすると、ポップアップは再び表示されなくなります。それが誰かを助けることを願っています。

于 2014-02-05T09:46:29.833 に答える