私はAndroidのアプリケーションの自動テストを改善するプロジェクトに取り組んでいます。基本的なUIを備えた非常にシンプルなSIPクライアントがあり、アンドロイドデベロッパーのウェブサイト(https://developer.android.com/guide/topics/connectivity/sip.html)のAPIガイドを読んで、SIPコールを受信して作成するだけです。Androidアプリのメソッドを遠隔から呼び出す方法は?
同じローカルネットワークまたは同じWi-Fiに接続されたPCからこのアプリケーションをリモートで制御する必要があります。コマンドまたは類似のもの(電話とやりとりすることなく)を自分の電話で通常実行されているアプリに送ります。具体的な例として、私はsipAddress(アプリで、sipAddressは、テキストボックスから取得されます)、私がやりたいことはあるメソッド呼び出しinitiateCall()掲載:
- を私のPCからsipAddressをパラメータとして与えるメソッドinitiateCall()を呼び出す(私は実行中のアプリケーションからUIを使用してはいけません。そのため、tを与える必要があります彼sipAddress)
- チェック発信コールが自分の携帯電話に
を実行しているアプリから起動する場合、私は解決策は、ウェブ・サービスについての何かでなければならないと思ったが、私は任意のより良いアイデアを持っていないと私はどのように始めるべきかわからず、どこでこの問題を解決するのか分からないので、私はあなたが助けを必要としているのです。
public void initiateCall() {
try {
SipAudioCall.Listener listener = new SipAudioCall.Listener() {
// set up the listener for outgoing calls
@Override
public void onCallEstablished(SipAudioCall call) {
call.startAudio();
call.setSpeakerMode(true);
updateStatus(call, 2);
}
@Override
public void onCallEnded(SipAudioCall call) {
updateStatus("Call End");
}
};
call = manager.makeAudioCall(me.getUriString(), sipAddress,
listener, 30);
} catch (Exception e) {
Log.i("WalkieTalkieActivity/InitiateCall",
"Error when trying to close manager.", e);
if (me != null) {
try {
manager.close(me.getUriString());
} catch (Exception ee) {
Log.i("WalkieTalkieActivity/InitiateCall",
"Error when trying to close manager.", ee);
ee.printStackTrace();
}
}
if (call != null) {
call.close();
}
}
}
こんにちは、迅速な答えをありがとう!私はあなたが何を意味しているか知っていると思うが、私はこのウェブサーバを設定する "どこ"を理解していない:それはアプリのコード内のものか外部ですか?私は全体的なロジックビューを想像することはできません:私のPCから私はウェブサーバーを呼び出すと、これはアプリを呼び出す? –
ようこそ。はい、その場合、ウェブサーバーはアプリの一部です。通常、いくつかの方法から始めました(開始のために1つだけですが、設定のためにいくつかのものがあります)。図書館は仕事の大部分を担います。あなたのアプリケーションはあなたが指定したポートで待機し、指定した場合には回答を提供します。全体的なビュー:あなたからあなたはブラウザやwgetでurl(Webページにアクセスする)を呼び出し、そのような何かをカールします。そして、アプリケーション内でそのページのメソッド(ページがあれば通常はHTML出力を変更するために使用される)が呼び出され、アプリケーション内の目的のメソッドが呼び出されます。 – rudib
ありがとう、ありがとうございます。私はできるだけ多くの情報を手に入れて、このようにしてみましょう! –