2

私は通話をピックアップするアプリに取り組んでおり、アクティブな通話中にダイヤルパッドに、以前に保存またはコピーした番号を入力します。まず、これが可能かどうかを知りたいです。第二に、私はいくつかのアイデアを考えていましたが、私は Android に比較的慣れておらず、その制限についてほとんど知らないため、それらがどれほどワイルドであるかはわかりません。

  1. 番号をクリップボードに保存し、通話画面で貼り付けをクリックする方法があり、番号をダイヤラーに貼り付けるだけです
  2. クリップボードに保存されている数字の各桁を取得し、ユーザーが通常はタッチする電話パッドのキーをプログラムで押します。
  3. 通話に応答でき、ダイヤラーに番号を貼り付け/追加する機能を備えた独自のアプリケーションで着信通話を開きます
  4. 呼び出しでポップアップするテンキーのキーの1つ(バックスペースキーなど)をオーバーライドし、必要な機能を実行するように再プログラムします(バックスペースの代わりに、保存された番号を入力します)

これらのいずれかが可能ですか (なぜ、またはなぜ不可能なのか)? または、私が望むことを達成するための他の方法を提案できますか? ありがとうございます。

編集:さらに具体的にさせてください。これは私がターゲットにしている画面です:

ここに画像の説明を入力 -このフィールドにカスタム番号を取得する方法が必要 です。方法は関係ありません。正しい軌道に乗せるための手がかりまたはヒントが必要なだけです。カスタムダイヤラーのアプリを作っている人を見たことがありますが、彼らは入力された番号を受け取って電話をかけるだけです。独自のアプリを作成する必要がある場合は、通話をピックアップするか、ピックアップした通話にアクセスし、上記のフィールドまたは同じ機能を提供する独自のフィールドに入力できる必要があります。

4

3 に答える 3

3

そのためのAPIはないと思います

私が今考えている最善の方法は、テキストを入力できるTextViewを使用して、通話中に(おそらくReceiverを介して)アプリを開くことです

次に、ここで電話をかけることができます:

Intent intentCall = new Intent(Intent.ACTION_CALL, Uri.fromParts("tel", phoneNumber, null));
startActivity(intentCall);

しかし、電話アプリがどのように反応するかはわかりません

于 2012-08-24T14:44:25.910 に答える
2

私があなたを正しく理解しているなら、あなたは電話がかかってきた後にアプリがダイヤルパッドにいくつかの数字を打ち込むことを望みます。

以下は試してみる価値のあるオプションかもしれません。

を使用して内部com.android.internal.telephony.ITelephonyオブジェクトを取得しますJava reflection詳細はこちら。次に、dial()メソッドを呼び出します。この方法では、ダイヤルパッドに番号を追加するだけで、実際に電話をかけることはありません。これはあなたのために働くかもしれません。

于 2012-08-29T14:46:37.213 に答える
2

ご提供いただいた説明から、テレフォニー マネージャー インターフェイスを使用する必要があるようです。このアイデアを進めていく上で直面する可能性のある問題は、プログラムを使用して通話を選択し、電話の状態を効果的に変更しようとすることです。つまり、MODIFY_PHONE_STATE パーミッションが必要になります。この権限は、Gingerbread 以降、システム アプリのみに制限されています。この基本的な許可がなければ、あなたのアプリケーションのアイデアはあまり実現できないと思います。さらに、DTMF トーンを送信する目的であると仮定して、プログラムで数字をキー入力しようとするため、Android In Call Data にアプリケーションがアクセスできないという問題が発生します。現在のところ、Android で適切なテレフォニー パッケージがサポートされていません。

于 2012-08-29T08:38:55.030 に答える