2014-06-18 1 views
3

나는 내 Spotify 플레이어를 제어하기 위해 안드로이드 애플리케이션을 개발할 계획 단계에있다. 내 시스템에서 데비안을 실행하기 때문에 Play 스토어에서 사용할 수있는 옵션이 매우 제한적입니다 (작동하는 앱을 찾을 수 없음). 따라서 내 안에있는 프로그래머가 하나를 만들라고 알려줍니다. 전에 안드로이드 애플리케이션을 만들지는 않았지만, API 작업에 대한 좋은 경험을 가지고 있으므로 제게 이것은 꽤 괜찮은 시작 프로젝트가 될 수 있다고 생각합니다.Android 애플리케이션이 데스크톱 애플리케이션에 대한 원격 컨트롤러로 어떻게 작동합니까? (Spotify)

그러나 구현 방법에 대한 몇 가지 개념을 파악하는 데 어려움이 있습니다. Spotify API 문서에 대한 연구를 통해 데스크톱에서 재생을 제어하는 ​​데 사용해야 할 Spotify Apps API이 있다고 생각합니다.

안드로이드 측에서는 과 함께 Spotify Apps API를 사용하여 메타 데이터를 받고 응용 프로그램이 데스크탑 재생에서 얻고있는 것을 표시한다고 생각합니다.

안드로이드 응용 프로그램이 Spotify 데스크톱 클라이언트와 어떻게 대화합니까? 나는 몇 가지 아이디어를 가지고 있지만, 나는 다음과 같이

내 생각 과정은 지금까지입니다 ... 확실하지 오전 :

  1. 바탕 화면의 로컬 웹 서버를 열고 안드로이드에
  2. 을 듣기 시작해야 응용 프로그램은 데스크톱 웹 서버에 연결합니다 (이 방법은 무엇입니까?)
  3. 일단 연결되면 데스크톱은 안드로이드 응용 프로그램을 채우기 위해 메타 데이터/기타 정보를 보냅니다.
  4. UI 버튼에서 타격을하면 웹 서버, 데이터를 구문 분석, 완료 작업을 수행 한 다음 안드로이드 응용 프로그램에 응답을 반환합니다.

나는이 도구를 사용하기 위해 배우고 사용해야하는 도구가 조금 있습니다. 구현에 대한 모든 제안을 매우 높이 평가합니다!

감사합니다.

답변

3

귀하의 접근 방법이 맞습니다.

호스트 (데스크탑)에서 소켓을 열고 포트 80 (또는 원하는 경우 다른 포트)에서 수신하고 청취하십시오. 완전한 웹 서버 일 필요는 없습니다.

클라이언트 (Android)에서 시작하려면 데스크톱의 IP 주소로 http 요청을 보내십시오. 데스크톱은 간단한 웹 페이지로 응답합니다.

이렇게 두 사람이 대화하는 방법입니다.

그러면 데스크톱에 데이터를 게시하고 웹 페이지에서 데이터를 반환 할 수 있습니다.

그러면 웹 페이지가 아닌 JSON을 사용하여 통신으로 이동할 수 있습니다.

Qt를 사용하여 호스트와 클라이언트를 프로그래밍 할 수 있습니다. 데스크톱에서 개발하고 클라이언트를 Android (또는 iPad)로 옮길 수 있습니다.

+0

을 간단한 리모콘을 만들어이 전체 과정을 설명 서버의 응답에 대한 감사를이 실행 일시 정지! 이것은 매우 도움이되지만 몇 가지 질문이 있습니다. 1) Qt는 정확히 무엇입니까? Java Swing과 비교하여 GUI를 만드는 데 사용되는 것을 볼 수 있습니다. 그러나 여기에 응용 프로그램은 무엇입니까? 이 코드로 코드를 작성할 수 있지만 Qt를 Android Eclipse 환경에서 사용하는 이유는 무엇입니까? Eclipse에서도 같은 결과를 얻을 수 있습니까? 2) Java와 PHP에만 능숙합니다.이 도구로만 가능합니까? Qt는 주로 수집 할 수있는 C++입니다. 감사합니다! – user3745117

+0

죄송합니다. Qt를 사용하려면 C++을 꼭 알아야합니다. – user3717478

2

예, 올바른 길을 가고 있습니다. 자바를 안다면 자바 소켓을 사용하여 안드로이드와 데스크톱을 연결할 수 있습니다. 데비안에서도 작동합니다. 서버 측에서는 지정된 포트에 소켓을 만들어야합니다.

ServerSocket serverSocket = new ServerSocket(PORT); 

그런 다음, 클라이언트 측에서

Socket clientSocket = serverSocket.accept(); 

를 연결하기 위해 클라이언트 대기 소켓을 만들고 IP와 포트

InetAddress serverAddr = InetAddress.getByName(“SERVER_IP”); 
Socket socket = new Socket(serverAddr, PORT); 

당신은 많은을 제어 할 수 있습니다를 사용하여 서버에 연결 java.awt.Robot 클래스를 사용하여 바탕 화면에있는 것들을 확인하십시오. 키보드와 마우스 이벤트를 시뮬레이트합니다. 따라서 Spotify에 사용할 수있는 단축키가 있다면 Spotify API를 제어 할 필요가 없습니다. 키보드 이벤트를 시뮬레이트합니다. 스페이스 바를 플레이 단축키는 그래서 만약/다음,

robot.keyPress(KeyEvent.VK_SPACE); 

This 문서 안녕 VLC

에 대한
관련 문제