【发布时间】:2011-12-17 09:35:48
【问题描述】:
想法:为您的安卓手机创建一个遥控器。
原因:我喜欢在连接了扬声器的基座上用手机听音乐。现在有时我想调高/调低音量,改变歌曲等。所以我需要解锁手机,找到正在播放音乐的应用程序(音乐播放器、网络广播应用程序等)。有时我设法拔出手机或只是搞砸了一些东西,通常这很糟糕。
所以我想通过笔记本电脑(通过 wifi)控制我的手机(通过数据连接,而不是 wifi)。
我研究了几种方法,希望得到一些关于它们的建议:
使用 XMPP。这很好,因为我可以使用很多免费的 XMPP 服务。我试过的两个库(都基于 smack)工作得很好(Flow aSmack port 和 Beem smack port)。我可以在设备上自动创建新用户并提供一些我(用户)将在桌面端输入的 ID/密码组合以链接两个设备。
使用JXTA。应该是下一个真正的交易,但可能是矫枉过正。我会想象在某处运行一个集合和中继服务器(需要让主机绕过防火墙/NAT)并创建一个受密码保护的对等组。使用设备唯一 ID 和密码(withing group)链接到桌面应用程序。 (可以从here 下载一本解释 p2p 和 JXTA 的精彩电子书。
使用C2DM。可能是答案,但通知传递有时可能需要几秒钟才能传递,并且没有反馈机制。
到目前为止,第一个解决方案看起来是一个更容易的选择。创建自定义扩展或仅在两个端点之间创建聊天并将其用于中继命令/消息。但我想知道我是否会滥用 XMPP 系统?
JXTA 听起来不错,但从我所做的所有阅读中可以看出,它是为组通信和服务共享而设计的,而不是连接两个端点的解决方案。
你们怎么看?我也欢迎所有建议。
更新我不想远程控制手机并进行交互控制。我想在笔记本电脑和手机之间建立连接(套接字连接),即使它们都位于受防火墙、路由器保护的不同网络上。有了这个,我可以定义一个协议来向手机发出命令(降低音量、静音、启动应用程序等)。
更新 2 我正在尝试 JXTA。这是一个很好的解决方案,但缺乏文档有点令人沮丧。获得 VPS FreeBSD 服务器来测试 RDV/relay 方面的事情。我会不断更新这个问题,因为它可能对其他人有帮助。
更新 3 更多阅读:
- How to make two android devices to communicate through TCP
- Connection between two computers without opening ports using a third computer
更新 4 到目前为止,我没有足够的时间继续我的项目。我确实找到了一个有趣的project。目前项目所有者正在重写他们的库,您可以跟踪他们的进度here。
【问题讨论】:
-
可以使用笔记本电脑的蓝牙吗?之前没有想过或尝试过,直到我读到你的问题。
-
它会工作,但我不想使用蓝牙。我的想法是,如果我可以使用网络来实现这种远程,那么以后就可以将开发的解决方案扩充到各种很酷的用途。
-
将 C2DM 与自定义控制应用程序一起使用?如果您想要近乎实时,也不会太难或设置短信
-
@Joe 我从未处理过 SMS 网关。不是要花大价钱吗?
-
视情况而定。如果是用于个人宠物项目,您可以非常轻松地关注 SMS 成本。 C2DM 仍然收费,但有免费配额但不太可靠