2

通話を開始した後、接続された PC 経由で、可能であれば ADB で通話の状況を確認したい。adb コマンドで電話番号を入力して通話を開始し、通話ボタンを押してservice call phone 2 s16 "some phone number"送信します。input keyevent 5

現在、通話のステータスを判断する方法を見つけるのに苦労しています。かけられた番号が現在通話中かどうか、通話がキャンセルされたかどうか、または通話が成功したかどうか、または着信した番号への音声接続が開いているかどうかを知る必要があります。それを監視する方法はありますか?

電話のモデルは本当に重要ではなく、番号を呼び出すために使用するAndroidサービス/アプリも、Androidバージョンも関係ありません。電話はルート化されます。使えるものは何でも使います。

4

8 に答える 8

7

adb shell dumpsys telephony.registry | grep mCallState、 戻ります:

  • 0 はアイドルを示し、
  • 1 = 呼び出し中
  • 2 = アクティブ コール
于 2014-09-11T17:18:38.743 に答える
1

TelephonyManager.getCallState()useから呼び出すにadb shellは:

adb shell service call phone 30

デバイス側でコマンド出力を適切に解析し、外部依存関係がない場合は、こちらの回答を参照してくださいservice call

詳細については、ADB シェルからの Android サービスの呼び出しもお読みください。

于 2013-10-30T15:48:46.973 に答える
0

私はちょうど私自身の答えを見つけました。「dumpsys telephony.registry」を使用すると、必要なすべての情報が得られます。私が必要としている変数「mCallState」が含まれています。

更新: 接続が確立されたときに何らかの理由で callstate が変更されないため、必要なものは 100% ではありません。誰かがもっとアイデアを持っているなら、私は知りたいです。

更新 2: どうやらこれは Android でのセキュリティ対策のようです。通話中に現在の通話ステータスを取得することはできません。ユーザーが通話を行っていることだけを知ることができますが、アクティブな接続が既に存在するか、まだダイヤルしている場合はわかりません。

于 2013-10-30T00:52:21.900 に答える
0

これらの番号を見つける方法は、最初に AOS のバージョンを特定してから、GrepCodeに移動してバージョンに移動することです。次に、/ com.android.internal.telephony.ITelephony (*.java) へのリンクをたどり、コードで を検索しますCALL_TRANSACTION

于 2014-07-20T23:11:28.567 に答える