4

私は次のコードを持っており、ダイアログフラグメントボタンから開始しています:

 uri = "tel:"+ServerDialogCallUs.this.contents.getString("phone_number");
 Intent intent = new Intent(Intent.ACTION_CALL);
 intent.setData(Uri.parse(uri));

通常の電話をかける代わりに、このコードは Skype 通話を開始します。通常の通話と Skype 通話のどちらかを選択するオプションをユーザーに提供するにはどうすればよいですか? ありがとう

4

6 に答える 6

20

実際、私は許可を逃していました:

 <uses-permission android:name="android.permission.CALL_PHONE" />

このアクセス許可をマニフェストに追加した後、通常の通話と Skype 通話のどちらかを選択できます。ありがとう

于 2013-08-20T15:31:23.920 に答える
4

setPackage() メソッドを呼び出してみてください。正常に動作します。

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setPackage("com.android.phone");
intent.setData(Uri.parse("tel:" + number));
startActitivy(intent);
于 2014-01-08T11:04:52.173 に答える
0

次のコードを試してください。

uri = "tel:"+ServerDialogCallUs.this.contents.getString("phone_number");
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(Intent.createChooser(intent, "Call Using..."));
于 2013-08-20T15:32:23.147 に答える
0

その理由は

  1. 通話ハンドラとして Skype のみがインストールされているか、
  2. Skype を通話のデフォルト ハンドラーとして関連付けました。

後者の場合は、設定、アプリ、Skype に移動し、アプリの詳細画面の下部にある関連付けを削除します。

于 2013-08-20T15:30:20.750 に答える
0

お使いの携帯電話には、おそらく、Skype がデフォルトのアプリとして使用されています。Intent.ACTION_CALL

于 2013-08-20T15:30:55.597 に答える