AndroidのコマンドラインでADBコマンドを使用して呼び出したいのですが。
PC経由で電話をかけるには、ADBコマンドをどのように使用すればよいですか?
ソースコードを提供してください。
実行する必要があります(<serialno>は、デバイスまたはエミュレーターのシリアル番号(emulator-5554など)に置き換えてください)。
$ adb -s <serialno> Shell am start -a Android.intent.action.CALL -d tel:555-5555
logcatでこれを見てください:
Starting: Intent { act=Android.intent.action.CALL dat=tel:xxx-xxx-xxxx }
これは次の方法で実行できます。
adb -s "Your devices number" Shell am start -a Android.intent.action.CALL -d tel:"phone no. to call"
それだけで、次のような応答が得られます。
Starting: Intent { act=Android.intent.action.CALL dat=tel:xxxxxxxxxx }
一部のAndroidデバイスでは、実行可能ファイルが存在します
/system/bin/radiooptions
実行すると、ヘルプが表示されます
Usage: radiooptions [option] [extra_socket_args]
0 - RADIO_RESET,
1 - RADIO_OFF,
2 - UNSOL_NETWORK_STATE_CHANGE,
3 - QXDM_ENABLE,
4 - QXDM_DISABLE,
5 - RADIO_ON,
6 apn- SETUP_PDP apn,
7 - DEACTIVE_PDP,
8 number - DIAL_CALL number,
9 - ANSWER_CALL,
10 - END_CALL
番号をダイヤルするには、単に実行することができます
adb Shell su -c "radiooptions 8 XXXXXXX"
xXXXXXXは電話番号で置き換えます。
このコマンドは非常に多くのHTCデバイスで見られました。私は現在、HTC OneでCyanogenmod 10.2を実行していますが、そこにもあります。 Qualcomm無線チップを搭載したデバイスでのみ利用できることも考えられます。
ダイヤラを起動するには、最初に
adb Shell dumpsys window windows | grep -E 'mCurrentFocus'
次に、それを使用して起動します
adb Shell monkey -p <package> 1 (probably com.Android.contacts)
ダイヤラの座標をクリックして、連絡先ページではなくダイヤラにいることを確認してください
adb Shell input tap <x> <y> (in my case 65, 80)
番号を入力してください
adb Shell input text <number>
そして、ダイヤル座標を打つ
adb Shell input tap <x> <y> (in my case 220, 750)
確かにこの答えはやり過ぎです。ただし、私が遭遇した以前のすべての答えは、アクションを完了するために使用するアプリケーションを尋ねるダイアログを起動します-スカイプ、バイバーなど、つまり、デフォルトのダイヤラを選択していないが、アプリを呼び出している場合インストールされているか、別のデフォルトのダイヤラを指定している場合、呼び出しはgsm経由で行われません。この方法により、gsmが確実に使用されます。
adb Shell input keyevent 5 && adb Shell input text 1234567890 && adb Shell input keyevent 5
ここで1234567890は電話番号です