Android应用程序如何作为桌面应用程序的远程控制器?(Spotify)



我正在计划开发一个Android应用程序来控制我的Spotify播放器。因为我在我的系统上运行Debian,在Play Store上可用的选项非常有限(我找不到任何正常运行的应用程序)。因此,我内心的程序员告诉我去构建一个。我以前没有构建过Android应用程序,但我有很好的使用api的经验,所以我认为这对我来说可能是一个相当不错的启动项目。

然而,我在掌握如何实现这一点的一些概念方面遇到了一些困难。通过对Spotify API文档的一些研究,我相信Spotify Apps API是我应该用来控制桌面播放的API。

在Android方面,我想我会使用Spotify Apps API和Libspotify API来接收元数据并显示应用程序从桌面播放中获得的内容。

我有麻烦的理解是如何Android应用程序与Spotify桌面客户端交谈?我有一些想法,但我不确定……

到目前为止,我的思考过程如下:

  1. 打开桌面的本地web服务器并开始监听
  2. 在Android应用程序上,连接到桌面的web服务器(你怎么做到这一点?)
  3. 一旦连接,桌面发送元数据/其他信息填充Android应用程序
  4. 从Android UI,点击UI按钮将发送一个请求到web服务器,在那里它解析数据,完成一个动作,然后返回响应到Android应用程序

我有点迷失了我需要学习和使用什么工具来获得这个工作。任何建议的实施,非常感谢!

谢谢!

你的方法是正确的。

在主机(桌面)上,打开一个套接字并监听端口80(或其他端口,如果你愿意)并监听。它不需要是一个完整的web服务器

在客户端(Android),首先发送一个http请求到桌面的ip地址。Desktop返回一个简单的网页。

这就是你如何让两者沟通。

然后你可以开始将数据发送到桌面并在网页中返回数据。

然后你可以使用JSON而不是网页进行通信。

您可以使用Qt对主机和客户端进行编程,您可以在桌面上进行开发,并在使其正常工作时将客户端移动到Android(或iPad)上。

是的,你是对的。如果你懂java,那么你可以使用java Sockets来连接android和桌面。它应该可以在Debian上运行。在服务器端,您需要在指定的端口上创建套接字。

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);
本文通过为vlc
创建一个简单的远程控件来解释这个完整的过程。

相关内容

  • 没有找到相关文章

最新更新