저는 Android App 용 자동화 테스트를 향상시키는 프로젝트를 진행하고 있습니다. 내가하고 싶은 일은 매우 쉽습니다. 기본 UI가있는이 간단한 SIP 클라이언트가 있고 SIP 호출을 수신하고 만드는 안드로이드 개발자 웹 사이트 (https://developer.android.com/guide/topics/connectivity/sip.html)에서 API 안내서를 읽는 것만으로 개발했습니다.Android 앱의 메소드를 원격으로 호출하는 방법은 무엇입니까?
동일한 로컬 네트워크 또는 동일한 Wi-Fi에 연결된 내 PC에서이 앱을 원격으로 제어해야합니다. 내 전화에서 정상적으로 실행되는 앱에 명령이나 유사 항목 (전화와 상호 작용하지 않음)을 보내야합니다.
- 내 전화
- 을에 응용 프로그램을 시작 : 구체적인 예 나는 내가하고 싶은 것은, 이 sipAddress (응용 프로그램에서, sipAddress이 텍스트 상자에서 가져온 것입니다)를 호출하는 방법 initiateCall()을 게시 내 PC에서 sipAddress를 매개 변수로 제공하는 메소드 initiateCall()을 호출합니다 (실행중인 앱에서 UI를 사용하면 안됩니다. 발신 통화 내가 솔루션은 웹 서비스에 대해 뭔가해야한다는 생각
내 휴대 전화에서 실행되는 응용 프로그램에서 시작하면 그는 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에서 나는 웹 서버를 호출하고 이것은 하나의 애플 리케이션을 호출? –
반갑습니다. 예, 그런 경우 웹 서버가 앱의 일부입니다. 일반적으로 몇 가지 방법으로 시작됩니다 (시작을 위해 하나지만 구성을 위해 일부만 사용). 도서관이 당신을 위해 대부분의 일을합니다. 그런 다음 앱은 지정한 포트에서 수신 대기하고 지정하면 답변을 제공합니다. 전체보기 : PC에서 브라우저 또는 wget으로 url (웹 페이지에 액세스)을 호출하고 그런 식으로 말하십시오. 그리고 나서 앱 내에서 페이지의 메소드 (일반적으로 페이지가 html 출력을 수정하는 데 주로 사용됨)가 호출되어 앱에서 원하는 메소드를 호출합니다. – rudib
알았어, 고마워. 내가 할 수있는 한 더 많은 정보를 가지고이 방법을 따르려고 노력할 것이다! –